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.
History

Wed, 30 Oct 2024 02:00:00 +0000

Type Values Removed Values Added
References
Metrics threat_severity

None

threat_severity

Important


Tue, 29 Oct 2024 15:15:00 +0000

Type Values Removed Values Added
First Time appeared Pylons
Pylons waitress
CPEs cpe:2.3:a:pylons:waitress:*:*:*:*:*:*:*:*
Vendors & Products Pylons
Pylons waitress
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Tue, 29 Oct 2024 14:45:00 +0000

Type Values Removed Values Added
Description 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.
Title Waitress has request processing race condition in HTTP pipelining with invalid first request
Weaknesses CWE-367
CWE-444
References
Metrics cvssV3_1

{'score': 9.1, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published: 2024-10-29T14:32:25.164Z

Updated: 2024-10-29T14:56:02.111Z

Reserved: 2024-10-18T13:43:23.457Z

Link: CVE-2024-49768

cve-icon Vulnrichment

Updated: 2024-10-29T14:55:55.365Z

cve-icon NVD

Status : Awaiting Analysis

Published: 2024-10-29T15:15:11.440

Modified: 2024-11-01T12:57:35.843

Link: CVE-2024-49768

cve-icon Redhat

Severity : Important

Publid Date: 2024-10-29T14:32:25Z

Links: CVE-2024-49768 - Bugzilla