<div dir="ltr"><font face="monospace">VSV00009 Varnish Denial of Service Vulnerability<br>================================================<br><br>Date: 2022-08-09<br><br>A denial of service attack can be performed against Varnish Cache servers<br>by specially formatting the reason phrase of the backend response status<br>line. In order to execute an attack, the attacker would have to be able to<br>influence the HTTP/1 responses that the Varnish Server receives from its<br>configured backends. A successful attack would cause the Varnish Server to<br>assert and automatically restart.<br><br>Versions affected<br>-----------------<br><br>* Varnish Cache releases 7.0.0, 7.0.1, 7.0.2, 7.1.0<br><br>Versions not affected<br>---------------------<br><br>* Varnish Cache 7.0.3 (released 2022-08-09)<br><br>* Varnish Cache 7.1.1 (released 2022-08-09)<br><br>* All versions of Varnish Cache 6.0 LTS series and Varnish Cache Plus by<br>  Varnish Software.<br><br>* GitHub Varnish Cache master branch at commit c5fd097e5cce8b461c6443af02b3448baef2491d<br><br>Mitigation<br>----------<br><br>If upgrading Varnish is not possible, it is possible to mitigate the<br>problem by adding the following snippet at the beginning of the<br>`vcl_backend_response` VCL function::<br><br>  sub vcl_backend_response {<br>     set beresp.status = beresp.status;<br>  }<br><br>By setting the status code to itself as described above, the reason field<br>will automatically be reset to the standard value for the given status<br>code, or "Unknown HTTP Status" if no standard value exists for that<br>code. This would overwrite any existing attack content in the reason<br>field.<br><br>Credits<br>-------<br><br>This problem was first identified and reproduced by Anthony Schwartz. The<br>original test case and maintainer notification was made by Guillaume<br>Quintard.<br></font><br></div>