1. Is there a library of URL / Header injection tests e.g. for fuzzing that we could generate additional test cases with or from?<div><br></div><div>2. Are requests.get() and requests.post() also vulnerable?</div><div><br></div><div>3. Despite the much-heralded UNIX pipe protocols' utility, filenames containing newlines (the de-facto line record delimiter) are possible: "file"$'\n'"name"</div><div><br></div><div>Should filenames containing newlines and control characters require a kwarg to be non-None in order to be passed through unescaped to the HTTP request?</div><div><br>On Wednesday, April 10, 2019, Karthikeyan <<a href="mailto:tir.karthi@gmail.com">tir.karthi@gmail.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div dir="auto">Thanks Gregory. I think it's a good tradeoff to ensure this validation only for URLs of http scheme. <div dir="auto"><br></div><div dir="auto">I also agree handling newline is little problematic over the years and the discussion over the level at which validation should occur also prolongs some of the patches. <a href="https://bugs.python.org/issue35906" target="_blank">https://bugs.python.<wbr>org/issue35906</a> is another similar case where splitlines is used but it's better to raise an error and the proposed fix could be used there too. Victor seemed to wrote a similar PR like linked one for other urllib functions only to fix similar attack in ftplib to reject newlines that was eventually fixed only in ftplib</div><div dir="auto"><br></div><div dir="auto">* <a href="https://bugs.python.org/issue30713" target="_blank">https://bugs.python.org/<wbr>issue30713</a> </div><div dir="auto">* <a href="https://bugs.python.org/issue29606" target="_blank">https://bugs.python.org/<wbr>issue29606</a></div><div dir="auto"><br></div><div dir="auto">Search also brings multiple issues with one duplicate over another that makes these attacks scattered over the tracker and some edge case missing. Slightly off topic, the last time I reported a cookie related issue where the policy can be overriden by third party library I was asked to fix it in stdlib itself since adding fixes to libraries causes maintenance burden to downstream libraries to keep up upstream. With urllib being a heavily used module across ecosystem it's good to have a fix landing in stdlib that secures downstream libraries encouraging users to upgrade Python too.<br><br><div data-smartmail="gmail_signature" dir="auto">Regards,<br>Karthikeyan S</div><div class="gmail_quote" dir="auto"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
</blockquote></div></div></div>
</div>
</blockquote></div>