CVE-2024-49768
Waitress has request processing race condition in HTTP pipelining with invalid first request
Severity Score
Exploit Likelihood
Affected Versions
Public Exploits
0Exploited in Wild
-Decision
Descriptions
Waitress is a Web Server Gateway Interface server for Python 2 and 3. A remote client may send a request that is exactly recv_bytes (defaults to 8192) long, followed by a secondary request using HTTP pipelining. When request lookahead is disabled (default) we won't read any more requests, and when the first request fails due to a parsing error, we simply close the connection. However when request lookahead is enabled, it is possible to process and receive the first request, start sending the error message back to the client while we read the next request and queue it. This will allow the secondary request to be serviced by the worker thread while the connection should be closed. Waitress 3.0.1 fixes the race condition. As a workaround, disable channel_request_lookahead, this is set to 0 by default disabling this feature.
A flaw was found in the Waitress WSGI server for Python. A remote client can send a request that is exactly `recv_bytes`, which defaults to 8192 long, followed by a secondary request using HTTP pipelining. When request lookahead is disabled (default), Waitress won't read any more requests, and when the first request fails due to a parsing error, it simply closes the connection.
However when request lookahead is enabled, it is possible to process and receive the first request, start sending the error message back to the client while we read the next request and queue it. This will allow the secondary request to be serviced by the worker thread while the connection should be closed.
CVSS Scores
SSVC
- Decision:Attend
Timeline
- 2024-10-18 CVE Reserved
- 2024-10-29 CVE Published
- 2024-10-29 CVE Updated
- 2024-11-08 EPSS Updated
- ---------- Exploited in Wild
- ---------- KEV Due Date
- ---------- First Exploit
CWE
- CWE-367: Time-of-check Time-of-use (TOCTOU) Race Condition
- CWE-444: Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling')
CAPEC
References (4)
URL | Tag | Source |
---|---|---|
https://github.com/Pylons/waitress/commit/e4359018537af376cf24bd13616d861e2fb76f65 | X_refsource_misc | |
https://github.com/Pylons/waitress/security/advisories/GHSA-9298-4cf8-g4wj | X_refsource_confirm |
URL | Date | SRC |
---|
URL | Date | SRC |
---|
URL | Date | SRC |
---|---|---|
https://access.redhat.com/security/cve/CVE-2024-49768 | 2024-11-20 | |
https://bugzilla.redhat.com/show_bug.cgi?id=2322460 | 2024-11-20 |
Affected Vendors, Products, and Versions
Vendor | Product | Version | Other | Status | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Vendor | Product | Version | Other | Status | <-- --> | Vendor | Product | Version | Other | Status |
Pylons Search vendor "Pylons" | Waitress Search vendor "Pylons" for product "Waitress" | >= 2.0.0 < 3.0.1 Search vendor "Pylons" for product "Waitress" and version " >= 2.0.0 < 3.0.1" | en |
Affected
|