CVE-2019-16785 json
HTTP Request Smuggling: LF vs CRLF handling in Waitress
published 6y ago modified last mo. also GHSA-pg36-wpm5-g57p , PYSEC-2019-136 , EUVD-2019-0156
- cvss
- 7.1
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 2.5%
- EPSS 2.5% chance of exploitation in 30 days, percentile 85%
- public exploits
- 0
- none known
Summary
Waitress through version 1.3.1 implemented a "MAY" part of the RFC7230 which states: "Although the line terminator for the start-line and header fields is the sequence CRLF, a recipient MAY recognize a single LF as a line terminator and ignore any preceding CR." Unfortunately if a front-end server does not parse header fields with an LF the same way as it does those with a CRLF it can lead to the front-end and the back-end server parsing the same HTTP message in two different ways. This can lead to a potential for HTTP request smuggling/splitting whereby Waitress may see two requests while the front-end server only sees a single HTTP message. This issue is fixed in Waitress 1.4.0.
Patch / fix
- pypi waitress 1.4.0
- waitress Debian 14, Debian 13, Debian 12 1.4.1-1
debian advisories DEBIAN-CVE-2019-16785
- 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-16785
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-16785 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 FencerVendor 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-16785 updated cvss 7.1
waitress: HTTP request smuggling through LF vs CRLF handling
-
Red Hat Ceph Storage 3 python-waitress Red Hat Ceph Storage 4 python-waitress, python3-waitressaffected: no fix available “Fix deferred”
-
Red Hat OpenStack Platform 13 (Queens) python-waitress, python2-waitressaffected: no fix planned “Will not fix”
-
Red Hat OpenStack Platform 16 (Train) python-waitress, python3-waitressaffected: 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 morefixed: vendor fix RHSA-2021:0420
-
Red Hat OpenStack Platform 15.0 python-waitress 1.4.2-1.el8ost, python3-waitress 1.4.2-1.el8ostfixed: 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.54% chance of exploitation in the next 30 days, higher than 85% of all scored CVEs (FIRST EPSS, 2026-11-09).
Exploits and checks
- github.com https://github.com/Pylons/waitress/security/advisories/GHSA-pg36-wpm5-g57p referenced PoC, tagged "exploit" by a source, unverified
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.4.0 |
Affected products
- Pylons Waitress
Classification
- Weakness
-
- CWE-444 Inconsistent Interpretation of HTTP Requests
References
-
github.com
/Pylons/waitress/commit/8eba394ad75deaf9e5cd15b78a3d16b12e6b0eba
web, patch, third-party-advisory
-
oracle.com
/security-alerts/cpuapr2022.html
web, patch, third-party-advisory
-
github.com
/Pylons/waitress/security/advisories/GHSA-pg36-wpm5-g57p
web, exploit, third-party-advisory, advisory
-
lists.fedoraproject.org
/archives/list/package-announce%40lists.fedoraproject.org/message/GVDHR2DNKCNQ7YQXISJ45NT4IQDX3LJ7/
vendor-advisory
-
lists.fedoraproject.org
/archives/list/package-announce%40lists.fedoraproject.org/message/LYEOTGWJZVKPRXX2HBNVIYWCX73QYPM5/
vendor-advisory
-
access.redhat.com
/errata/RHSA-2020:0720
vendor-advisory, web, third-party-advisory, advisory
-
docs.pylonsproject.org
/projects/waitress/en/latest/#security-fixes
web, vendor-advisory
-
lists.debian.org
/debian-lts-announce/2022/05/msg00011.html
mailing-list, web, third-party-advisory
-
nvd.nist.gov
/vuln/detail/CVE-2019-16785
advisory
-
github.com
/Pylons/waitress
package
-
github.com
/pypa/advisory-database/tree/main/vulns/waitress/PYSEC-2019-136.yaml
web
-
lists.fedoraproject.org
/archives/list/package-announce@lists.fedoraproject.org/message/GVDHR2DNKCNQ7YQXISJ45NT4IQDX3LJ7
web
-
lists.fedoraproject.org
/archives/list/package-announce@lists.fedoraproject.org/message/LYEOTGWJZVKPRXX2HBNVIYWCX73QYPM5
web
-
lists.fedoraproject.org
/archives/list/package-announce@lists.fedoraproject.org/message/GVDHR2DNKCNQ7YQXISJ45NT4IQDX3LJ7/
web
-
lists.fedoraproject.org
/archives/list/package-announce@lists.fedoraproject.org/message/LYEOTGWJZVKPRXX2HBNVIYWCX73QYPM5/
web
Sources
- CVE List CVE-2019-16785
- GitHub Advisory GHSA-pg36-wpm5-g57p
- NVD CVE-2019-16785
- OSV PYSEC-2019-136
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.