CVE-2019-16789 | HTTP Request Smuggling in Waitress: Invalid whitespace characters in headers

In Waitress through version 1.4.0, if a proxy server is used in front of waitress, an invalid request may be sent by an attacker that bypasses the front-end and is parsed differently by waitress leading to a potential for HTTP request smuggling. Specially crafted requests containing special whitespace characters in the Transfer-Encoding header would get parsed by Waitress as being a chunked request, but a front-end server would use the Content-Length instead as the Transfer-Encoding header is considered invalid due to containing invalid characters. If a front-end server does HTTP pipelining to a backend Waitress server this could lead to HTTP request splitting which may lead to potential cache poisoning or unexpected information disclosure. This issue is fixed in Waitress 1.4.1 through more strict HTTP field validation.

Published: 2019-12-26 Last update: 2024-11-21 Assigner: [email protected] Source: [email protected]

Conclusion & alert: CVE-2019-16789 is rated Moderate Risk (55.6/100): CVSS High severity, with medium exploitation likelihood (EPSS 1.00%). Mandatory action: Review affected assets and schedule remediation.

Risk is dynamic; we continuously reassess and refresh what is shown on this page as upstream context changes.

Exploit prediction scoring system (EPSS) score for CVE-2019-16789

EPSS lead: Daily EPSS estimates relative likelihood of exploitation; percentile ranks this CVE among scored vulnerabilities (higher = more severe relative rank).

# Date Old EPSS score New EPSS score Delta (New - Old)
1 2026-06-07 0.88% 1.00% +0.12%
2 2026-01-24 0.60% 0.88% +0.28%
3 2025-11-21 0.60%

Full EPSS history (18 records total)

Common vulnerability scoring system (CVSS) metrics for CVE-2019-16789

CVSS metrics for this CVE.

Base score Version Severity Vector Exploitability Impact Score source
7.1 3.1 HIGH
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:L/I:H/A:N Click to expand
Attack vector (AV:N)
Could be attacked over the internet or any normal routed network—not just someone sitting at the machine.
Attack complexity (AC:H)
Even with access, the exploit needs extra luck, timing, or a fussy environment to actually work.
Privileges required (PR:L)
A normal user session is enough; they don’t have to be admin.
User interaction (UI:N)
Nobody has to click “OK” or open a trap file; it can work without a victim helping.
Scope (S:C)
Breaking this can reach past the original component and bite other resources—bigger blast radius.
Confidentiality (C:L)
Some sensitive info could get out, but not a total data dump.
Integrity (I:H)
They could widely tamper with or forge data—trust in the data is badly hurt.
Availability (A:N)
Service keeps running; no real outage angle.
1.8 4.7 [email protected]
8.2 3.1 HIGH
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:N Click to expand
Attack vector (AV:N)
Could be attacked over the internet or any normal routed network—not just someone sitting at the machine.
Attack complexity (AC:L)
Once they can reach the bug, pulling it off is straightforward—no weird race conditions or rare setup.
Privileges required (PR:N)
No account or special rights needed—anonymous or random user is enough.
User interaction (UI:N)
Nobody has to click “OK” or open a trap file; it can work without a victim helping.
Scope (S:U)
Damage stays in the same “trust bubble” as the broken component—no big spill into unrelated systems.
Confidentiality (C:L)
Some sensitive info could get out, but not a total data dump.
Integrity (I:H)
They could widely tamper with or forge data—trust in the data is badly hurt.
Availability (A:N)
Service keeps running; no real outage angle.
3.9 4.2 [email protected]
6.4 2.0 MEDIUM
AV:N/AC:L/Au:N/C:P/I:P/A:N Click to expand
Access vector (AV:N)
Can be exploited remotely over network reachability.
Access complexity (AC:L)
Exploitation conditions are straightforward and predictable.
Authentication (AU:N)
No authentication is required.
Confidentiality impact (C:P)
Partial confidentiality impact.
Integrity impact (I:P)
Partial integrity impact.
Availability impact (A:N)
No availability impact.
10.0 4.9 [email protected]

Weakness enumeration for CVE-2019-16789

GitHub Security Advisory for CVE-2019-16789

GHSA-968f-66r5-5v74 · Severity: medium · Ecosystem: pip — HTTP Request Smuggling in Waitress: Invalid whitespace characters in headers (Follow-up)

OS Trackers for CVE-2019-16789

vendor priority summary link
alpine high CVE-2019-16789: 1 source package rows (py3-waitress); 7 state rows across 7 repos (3.17-community, 3.18-community, 3.19-community, 3.20-community, 3.21-community, 3.22-community, edge-community); fixed 7, open 0. https://security.alpinelinux.org/vuln/CVE-2019-16789
debian not yet assigned CVE-2019-16789 not yet assigned priority: Debian including 1 source packages (waitress), 5 status rows across 5 suites (bookworm, bullseye, forky, sid, trixie): resolved 5. https://security-tracker.debian.org/tracker/CVE-2019-16789
redhat high https://access.redhat.com/security/cve/CVE-2019-16789
suse high CVE-2019-16789 severity important: SUSE including 298 source package names (1.1.1.0.1.5.334:python3-waitress-1.4.3-3.3.1, 1.2.0.0.1.5.338:python3-waitress-1.4.3-3.3.1, …), 542 product×package rows across 38 product lines (Container ses/6/cephcsi/cephcsi, Container ses/6/rook/ceph, … (38 product lines)): Fixed 542. https://www.suse.com/security/cve/CVE-2019-16789/
ubuntu low CVE-2019-16789 low priority: Ubuntu including 1 source packages (waitress), 18 status rows across 18 suites (bionic, disco, eoan, focal, groovy, hirsute, impish, jammy, kinetic, lunar, mantic, noble, oracular, plucky, questing, trusty, upstream, xenial): not-affected 12, ignored 2, needed 2, DNE 1, released 1. https://ubuntu.com/security/CVE-2019-16789

Affected software / configurations for CVE-2019-16789

Vendor Product Version Raw CPE
agendaless waitress <= 1.4.0 cpe:2.3:a:agendaless:waitress:*:*:*:*:*:*:*:*
oracle communications_cloud_native_core_network_function_cloud_native_environment 1.10.0 cpe:2.3:a:oracle:communications_cloud_native_core_network_function_cloud_native_environment:1.10.0:*:*:*:*:*:*:*
debian debian_linux 9.0 cpe:2.3:o:debian:debian_linux:9.0:*:*:*:*:*:*:*
fedoraproject fedora 30 cpe:2.3:o:fedoraproject:fedora:30:*:*:*:*:*:*:*
fedoraproject fedora 31 cpe:2.3:o:fedoraproject:fedora:31:*:*:*:*:*:*:*
redhat openstack 15 cpe:2.3:a:redhat:openstack:15:*:*:*:*:*:*:*

References for CVE-2019-16789

URL Tags
https://access.redhat.com/errata/RHSA-2020:0720 Third Party Advisory
https://docs.pylonsproject.org/projects/waitress/en/latest/#security-fixes Release Notes Vendor Advisory
https://github.com/Pylons/waitress/commit/11d9e138125ad46e951027184b13242a3c1de017 Patch Third Party Advisory
https://github.com/github/advisory-review/pull/14604 Broken Link Third Party Advisory
https://lists.debian.org/debian-lts-announce/2022/05/msg00011.html Mailing List Third Party Advisory
https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/GVDHR2DNKCNQ7YQXISJ45NT4IQDX3LJ7/
https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/LYEOTGWJZVKPRXX2HBNVIYWCX73QYPM5/
https://www.oracle.com/security-alerts/cpuapr2022.html Patch Third Party Advisory
cvelogic Threat Intelligence