Hmm, I don't think this vector is valid.
Even though you can inject \r\n in webob's PATH_INFO, it's not used as-is in real request headers, it gets quoted before it's put to good use:
>>> a='/%0d%0a'
>>> b=urllib.unquote(a)
>>> r=webob.Request.blank('i will be overridden by env', environ={})
>>> r.environ['PATH_INFO']=b
>>> r.path_info
'/\r\n'
>>> r.url
'http://localhost/%0D%0A'
So you can't inject \r\n in the resulting request ?
Hmm, I don't think this vector is valid.
Even though you can inject \r\n in webob's PATH_INFO, it's not used as-is in real request headers, it gets quoted before it's put to good use:
>>> a='/%0d%0a' Request. blank(' i will be overridden by env', environ={}) 'PATH_INFO' ]=b localhost/ %0D%0A'
>>> b=urllib.unquote(a)
>>> r=webob.
>>> r.environ[
>>> r.path_info
'/\r\n'
>>> r.url
'http://
So you can't inject \r\n in the resulting request ?