Описание
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.
Меры по смягчению последствий
Disable channel_request_lookahead. This feature is disabled (set to 0) by default.
Затронутые пакеты
| Платформа | Пакет | Состояние | Рекомендация | Релиз |
|---|---|---|---|---|
| Red Hat Ceph Storage 4 | python-waitress | Affected | ||
| Red Hat Ceph Storage 5 | python-waitress | Affected | ||
| Red Hat Openshift Container Storage 4 | python-waitress | Affected | ||
| Ironic content for Red Hat OpenShift Container Platform 4.12 | python-waitress | Fixed | RHSA-2024:10535 | 05.12.2024 |
| Ironic content for Red Hat OpenShift Container Platform 4.13 | python-waitress | Fixed | RHSA-2024:10815 | 12.12.2024 |
| Red Hat OpenShift Container Platform 4.14 | python-waitress | Fixed | RHSA-2024:9623 | 20.11.2024 |
| Red Hat OpenShift Container Platform 4.15 | python-waitress | Fixed | RHSA-2024:10145 | 26.11.2024 |
| Red Hat OpenShift Container Platform 4.16 | python-waitress | Fixed | RHSA-2024:9618 | 20.11.2024 |
| Red Hat OpenShift Container Platform 4.17 | python-waitress | Fixed | RHSA-2024:9613 | 19.11.2024 |
| Red Hat OpenStack Platform 16.2 | python-waitress | Fixed | RHSA-2025:0201 | 09.01.2025 |
Показывать по
Дополнительная информация
Статус:
EPSS
4.8 Medium
CVSS3
Связанные уязвимости
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.
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.
Waitress is a Web Server Gateway Interface server for Python 2 and 3. ...
Waitress has request processing race condition in HTTP pipelining with invalid first request
Уязвимость функции channel_request_lookahead() WSGI сервера для python Waitress, позволяющая нарушителю отправить скрытый HTTP-запрос (атака типа HTTP Request Smuggling
EPSS
4.8 Medium
CVSS3