Skip to content
Fencer Intel
high 7.1

CVE-2019-16786 json

HTTP Request Smuggling: Invalid Transfer-Encoding in Waitress

published 6y ago modified 4mo ago also GHSA-g2xc-35jw-c63p , PYSEC-2019-137 , EUVD-2019-0157

cvss
7.1
version 3.1, CNA
cisa kev
Not listed
not in CISA's catalog
epss
2.4%
EPSS 2.4% chance of exploitation in 30 days, percentile 84%
public exploits
0
none known

Summary

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.

Patch / fix

  • pypi waitress 1.3.1, 1.4.0
  • agendaless waitress 1.3.1
  • waitress Debian 14, Debian 13, Debian 12 1.4.1-1

debian advisories DEBIAN-CVE-2019-16786

  • python-waitress openstack 15 1.4.2-1.el8ost
  • python3-waitress openstack 15 1.4.2-1.el8ost

red hat advisories RHSA-2020:0720

  • python-waitress SLE Module for Package Hub 15 SP2, SLE Module for Package Hub 15 SP1, SLE Module for Basesystem 15 SP2 +6 more 1.4.3-3.3.1
  • kibana OpenStack Cloud Crowbar 9, OpenStack Cloud 9 4.6.3-4.3.2
  • grafana OpenStack Cloud Crowbar 9, OpenStack Cloud 9 6.2.5-3.12.2
  • ansible1 OpenStack Cloud 9 1.9.6-9.7.2
  • ardana-mq OpenStack Cloud 9 9.0+git.1593618110.cbd1a37-3.16.2
  • crowbar-core OpenStack Cloud Crowbar 9 6.0+git.1594619891.b75a61d0d-3.25.5
  • rubygem-puma OpenStack Cloud Crowbar 9 2.16.0-4.9.1
  • ardana-glance OpenStack Cloud 9 9.0+git.1593631708.9354a78-3.13.2

suse advisories SUSE-SU-2020:3292-1SUSE-SU-2020:3269-1SUSE-RU-2020:2161-1SUSE-RU-2020:2072-1SUSE-SU-2020:1901-1

  • python-waitress openSUSE Leap 15.1 1.4.3-lp151.3.3.1
  • python-waitress openSUSE Leap 15.2 1.4.3-lp152.4.3.1

opensuse advisories openSUSE-SU-2020:1922-1openSUSE-SU-2020:1911-1

  • py3-waitress Alpine 3.24, Alpine 3.23, Alpine 3.22 +11 more 1.4.0-r0

alpine advisories ALPINE-CVE-2019-16786

Alpine secdb © Alpine Linux, from https://secdb.alpinelinux.org via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0

Is CVE-2019-16786 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.

Check with Fencer

Vendor advisories

What the vendors themselves say about their products: affected, fixed or not affected, and what to do.

red hat product security vex CVE-2019-16786 updated cvss 7.1

waitress: HTTP request smuggling through invalid Transfer-Encoding

  • Red Hat Ceph Storage 3 python-waitress Red Hat Ceph Storage 4 python-waitress, python3-waitress
    affected: no fix available “Fix deferred”
  • Red Hat OpenStack Platform 13 (Queens) python-waitress, python2-waitress
    affected: no fix planned “Will not fix”
  • Red Hat OpenStack Platform 16 (Train) python-waitress, python3-waitress
    affected: no fix available
  • Red Hat Quay v3 quay/quay-rhel8 v3.4.0-51, quay/clair-rhel8 v3.4.0-25, quay/quay-builder-rhel8 v3.4.0-18, quay/quay-operator-bundle v3.4.0-89, quay/quay-operator-rhel8 v3.4.0-132, quay/quay-bridge-operator-bundle v3.4.0-3, +5 more
    fixed: vendor fix RHSA-2021:0420
  • Red Hat OpenStack Platform 15.0 python-waitress 1.4.2-1.el8ost, python3-waitress 1.4.2-1.el8ost
    fixed: vendor fix RHSA-2020:0720

Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf

Exploit prediction

2.38% chance of exploitation in the next 30 days, higher than 84% of all scored CVEs (FIRST EPSS, 2026-11-09).

CVSS scores

assigned by version score vector
CNA 3.1 7.1 CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:L/A:N
NVD 3.1 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
NVD 2.0 5.0 AV:N/AC:L/Au:N/C:N/I:P/A:N
GitHub 3.1 7.1 CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:L/A:N

Affected packages

ecosystem package affected fixed in
pypi waitress
<1.4.0
<1.3.1
1.4.0
1.3.1

Affected products

  • Pylons Waitress

Classification

Weakness
  • CWE-444 Inconsistent Interpretation of HTTP Requests

References

Sources

Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.