Description
Waitress through version 1.3.1 would parse the Transfer-Encoding header and
only look for a single string value, if that value was not chunked it would
fall through and use the Content-Length header instead. According to the
HTTP standard Transfer-Encoding should be a comma separated list, with the
inner-most encoding first, followed by any further transfer codings, ending
with chunked. Requests sent with: "Transfer-Encoding: gzip, chunked" would
incorrectly get ignored, and the request would use a Content-Length header
instead to determine the body size of the HTTP message. This could allow
for Waitress to treat a single request as multiple requests in the case of
HTTP pipelining. This issue is fixed in Waitress 1.4.0.
Updated: 2022-04-25 00:37:46 UTC (commit ecc1009cb19540b950de59270950018900f37f15)