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.
Upstream:released (1.4.0)
Ubuntu 12.04 ESM (Precise Pangolin):DNE
Ubuntu 14.04 ESM (Trusty Tahr):DNE
Ubuntu 16.04 LTS (Xenial Xerus):needed
Ubuntu 18.04 LTS (Bionic Beaver):needed
Ubuntu 19.10 (Eoan Ermine):needed
Ubuntu 20.04 (Focal Fossa):not-affected (1.4.1-1)
More Information

Updated: 2020-01-29 18:59:04 UTC (commit 40f18bf14da5fb50662e1f861ea594a462b207fe)