# CVE-2019-16786: HTTP Request Smuggling: Invalid Transfer-Encoding in Waitress

Source: https://junglewise.ai/threats/cve-2019-16786-http-request-smuggling-invalid-transfer-encoding-in-waitress  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2019-12-20  
License: CC BY 4.0 with a link back

CVE-2019-16786 · Severity: low · CVSS 3.1 · Published 2019-12-20

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.

Technologies: [waitress (PyPI)](https://junglewise.ai/threats/technologies/waitress). Vendors: [PyPI](https://junglewise.ai/threats/vendors/pypi).

## Quick answers

**Is CVE-2019-16786 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2019-16786 being exploited in the wild.

**How severe is CVE-2019-16786?** Low severity, with a CVSS score of 3.1, published 20 December 2019.

**Which products and versions are affected?** waitress (PyPI) ECOSYSTEM:introduced=0,fixed=1.4.0, GIT:introduced=0,fixed=f11093a6b3240fc26830b6111e826128af7771c3|ECOSYSTEM:introduced=0,fixed=1.3.1.

**Is there a fix for CVE-2019-16786?** Yes. waitress (PyPI): upgrade to 1.3.1, 1.4.0 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**Am I affected by CVE-2019-16786?** Check whether you run waitress (PyPI) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## How to fix

- waitress (PyPI): upgrade to 1.3.1, 1.4.0 or later

  ```sh
  pip install "waitress>=1.4.0"
  ```


## Affected products

- waitress (PyPI) ECOSYSTEM:introduced=0,fixed=1.4.0, GIT:introduced=0,fixed=f11093a6b3240fc26830b6111e826128af7771c3|ECOSYSTEM:introduced=0,fixed=1.3.1

## Identifiers

- CVE-2019-16786
- GHSA-g2xc-35jw-c63p
- PYSEC-2019-137

## Related threats

- [Waitress denial of service via unclean socket handling](https://junglewise.ai/threats/cve-2024-49769-waitress-denial-of-service-via-unclean-socket-handling)
- [Waitress has request processing race condition in HTTP pipelining with invalid first request](https://junglewise.ai/threats/cve-2024-49768-waitress-has-request-processing-race-condition-in-http-pipelining)
- [Uncaught Exception (due to a data race) leads to process termination in Waitress](https://junglewise.ai/threats/cve-2022-31015-uncaught-exception-due-to-a-data-race-leads-to-process)
- [HTTP Request Smuggling in waitress](https://junglewise.ai/threats/cve-2022-24761-http-request-smuggling-in-waitress)
- [Catastrophic backtracking in regex allows Denial of Service in Waitress](https://junglewise.ai/threats/cve-2020-5236-catastrophic-backtracking-in-regex-allows-denial-of-service-in)
