Waitress through version 1.3.1 allows request smuggling by sending the Content-Length header twice. Waitress would header fold a double Content-Length header and due to being unable to cast the now comma separated value to an integer would set the Content-Length to 0 internally. If two Content-Length headers are sent in a single request, Waitress would treat the request as having no body, thereby treating the body of the request as a new request in HTTP pipelining. This issue is fixed in Waitress 1.4.0.
The product acts as an intermediary HTTP agent (such as a proxy or firewall) in the data flow between two entities such as a client and server, but it does not interpret malformed HTTP requests or responses in ways that are consistent with how the messages will be processed by those entities that are at the ultimate destination.
Link | Tags |
---|---|
https://www.oracle.com/security-alerts/cpuapr2022.html | third party advisory patch |
https://docs.pylonsproject.org/projects/waitress/en/latest/#security-fixes | release notes |
https://github.com/Pylons/waitress/security/advisories/GHSA-4ppp-gpcr-7qf6 | third party advisory |
https://github.com/Pylons/waitress/commit/575994cd42e83fd772a5f7ec98b2c56751bd3f65 | patch |
https://lists.debian.org/debian-lts-announce/2022/05/msg00011.html | third party advisory mailing list |