CRITICAL🇬🇧 English

CVE-2024-49768

Race condition w Waitress umożliwia obsługę żądań po zamknięciu połączenia

CVSS 9.1v3.1pub. 2024-10-29upd. 2024-11-07

Podatność typu race condition w serwerze WSGI Waitress pozwala zdalnemu klientowi na przetworzenie drugiego żądania HTTP (pipelining) nawet po tym, gdy połączenie powinno zostać zamknięte z powodu błędu parsowania. Jest to groźne, ponieważ umożliwia nieautoryzowane przetwarzanie żądań przez wątek roboczy serwera w kontekście błędnego stanu połączenia.

Pokaż oryginał (EN)

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.

🤖 Analiza AI
Jak działa

Atakujący wysyła żądanie o długości dokładnie równej wartości recv_bytes (domyślnie 8192 bajtów), po którym natychmiast przesyła drugie żądanie z wykorzystaniem HTTP pipelining. Gdy włączona jest opcja request lookahead (channel_request_lookahead > 0), serwer może zacząć wysyłać odpowiedź błędu na pierwsze żądanie, jednocześnie odczytując i kolejkując drugie żądanie. Na skutek wyścigu (race condition) drugie żądanie zostaje obsłużone przez wątek roboczy, mimo że połączenie powinno już być zamknięte. Podatność wynika z nieprawidłowej kolejności sprawdzania stanu połączenia względem przetwarzania kolejnych żądań (CWE-367) oraz niespójnej interpretacji sekwencji żądań HTTP (CWE-444).

Skutki

Atakujący może spowodować, że serwer przetworzy i wykona drugie, potencjalnie złośliwe żądanie HTTP w kontekście połączenia, które powinno zostać odrzucone, co może prowadzić do nieautoryzowanego dostępu do zasobów lub naruszenia integralności przetwarzanych danych.

Mitygacja

Należy zaktualizować Waitress do wersji 3.0.1. Jako obejście (workaround) należy wyłączyć opcję channel_request_lookahead, ustawiając jej wartość na 0 (jest to ustawienie domyślne — instalacje niemodyfikujące tej opcji nie są narażone).

Kogo dotyczy

Agendaless Waitress — wersje z włączoną opcją channel_request_lookahead (wartość większa niż 0); podatność naprawiona w wersji 3.0.1

Uwagi

Podatność dotyczy wyłącznie konfiguracji z niedomyślnie włączonym channel_request_lookahead. Domyślna konfiguracja Waitress (channel_request_lookahead=0) nie jest podatna.

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
  • Agendaless Waitress

    APP
    Agendaless
    2.0.0 – 3.0.1 (bez)
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
Tagi
Race Condition
CWE
Referencje

Powiązane podatności

CVE-2024-49769HIGH7.5ten sam produkt

Waitress is a Web Server Gateway Interface server for Python 2 and 3. When a remote client closes the connecti...

CVE-2022-24761HIGH7.5ten sam produkt

Waitress is a Web Server Gateway Interface server for Python 2 and 3. When using Waitress versions 2.1.0 and p...

CVE-2019-16792HIGH7.1ten sam produkt

Waitress through version 1.3.1 allows request smuggling by sending the Content-Length header twice. Waitress w...

CVE-2019-16789HIGH7.1ten sam produkt

In Waitress through version 1.4.0, if a proxy server is used in front of waitress, an invalid request may be s...

CVE-2019-16785HIGH7.1ten sam produkt

Waitress through version 1.3.1 implemented a "MAY" part of the RFC7230 which states: "Although the line termin...

CVE-2024-49768 — Race condition w Waitress umożliwia obsługę żądań po zamknięciu połączenia — CRITICAL 9.1 | CVEbaza.pl