CVE-2026-82397
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 28 - wyżej niż 28% wszystkich znanych CVE
Streszczenie
Tornado przed wersją 6.5.8 nie ogranicza liczby pól podczas parsowania danych formularza typu application/x-www-form-urlencoded. Niezautoryzowane żądanie z milionami pól może zablokować jednowątkową pętlę zdarzeń i opóźnić wszystkie połączenia.
Ocena ryzyka
Atakujący może przeprowadzić atak DoS, wysyłając specjalnie spreparowane żądanie, co spowoduje niedostępność usługi dla wszystkich użytkowników.
Rekomendacja
Zaktualizuj Tornado do wersji 6.5.8 lub nowszej, która zawiera poprawkę ograniczającą liczbę pól.
Inne podatności w Tornado
Zobacz wszystkie- CVE-2026-91992Średnie
Tornado w wersjach przed 6.5.7 zawiera podatność polegającą na wycieku poświadczeń w CurlAsyncHTTPClient, gdzie uchwyty pycurl są ponownie używane między żądaniami bez prawidłowego czyszczenia stanu. Atakujący mogą uzyskać poufne poświadczenia, wysyłając żądania przez tę samą instancję klienta, co pozwala na utrzymanie certyfikatów TLS lub uwierzytelniania proxy między niepowiązanymi żądaniami.
- CVE-2026-91991Średnie
Tornado w wersjach przed 6.5.8 zawiera niekompletną poprawkę na wstrzykiwanie atrybutów cookie, która pozwala atakującym wstrzykiwać dowolne atrybuty cookie poprzez przekazywanie pisanych wielką literą lub przestarzałych argumentów słów kluczowych do set_cookie. Atakujący mogą osadzać dane rozdzielane średnikami w parametrach pisanych wielką literą, takich jak Domain, Path lub SameSite, aby obejść walidację i zmodyfikować atrybuty bezpieczeństwa cookie.
- CVE-2026-91990Wysokie
Tornado przed wersją 6.5.8 zawiera podatność na amplifikację pamięci w funkcji parse_multipart_form_data, która dzieli dane multipart przed walidacją limitu max_parts. Atakujący mogą wysyłać spreparowane żądania multipart z wieloma częściami, tworząc duże tymczasowe listy, co wyczerpuje pamięć serwera i powoduje denial of service.
- CVE-2024-58384Średnie
W bibliotece Tornado przed wersją 6.4.1 występuje podatność na wstrzyknięcie CRLF w klasie CurlAsyncHTTPClient, która nie odrzuca znaków powrotu karetki i przesunięcia wiersza w nagłówkach żądań. Atakujący może wstrzyknąć sekwencje CRLF do wartości nagłówków, aby wstrzyknąć dowolne nagłówki lub skonstruować całkowicie nowe żądania HTTP.
- CVE-2024-14029Wysokie
Tornado przed wersją 6.4.1 ignoruje zduplikowane nagłówki Transfer-Encoding: chunked, traktując żądania jako niemające treści i parsując treść chunked jako kolejne żądanie. Atakujący mogą wykorzystać tę niespójność, gdy Tornado działa za proxy, do przeprowadzenia przemytu żądań HTTP.
- CVE-2023-54397Wysokie
Tornado przed wersją 6.3.3 zawiera podatność na przemyt żądań HTTP wynikającą z nieprawidłowego parsowania nagłówków Content-Length akceptującego niestandardowe znaki. Atakujący mogą wysyłać spreparowane żądania HTTP z tymi znakami, aby obejść walidację proxy i przemycić żądania, gdy aplikacja działa za niektórymi proxy.
- CVE-2026-49855Wysokie
Podatność w Tornado przed wersją 6.5.6 pozwala na nieograniczone dekompresowanie danych gzip, co może prowadzić do wyczerpania pamięci przez złośliwy serwer lub klienta SimpleAsyncHTTPClient.
- CVE-2026-49854Średnie
W Tornado przed wersją 6.5.6, opcjonalne natywne rozszerzenie tornado.speedups implementowało funkcję websocket_mask bez walidacji, czy argument mask ma dokładnie cztery bajty. Pozwala to funkcji C na odczytanie do trzech bajtów poza dostarczonym buforem podczas dekodowania tokena XSRF, gdy natywne rozszerzenie jest aktywne.
- CVE-2026-49853Wysokie
W Tornado przed wersją 6.5.6, SimpleAsyncHTTPClient podczas przekierowań HTTP wykonywał płytką kopię żądania i usuwał jedynie nagłówek Host, pozostawiając nagłówki autoryzacyjne (Authorization, auth_username, auth_password, auth_mode) w przypadku zmiany schematu, hosta lub portu. Luka została naprawiona w wersji 6.5.6.
- CVE-2026-35536Wysokie
W Tornado przed wersją 6.5.5, możliwe było wstrzyknięcie atrybutów ciasteczka, ponieważ argumenty domain, path i samesite w metodzie .RequestHandler.set_cookie nie były sprawdzane pod kątem spreparowanych znaków.
Oryginalny opis (angielski, źródło NVD)
Tornado is a Python web framework and asynchronous networking library. Prior to 6.5.8, Tornado parses application/x-www-form-urlencoded request bodies with urllib.parse.parse_qs in tornado/escape.py without passing max_num_fields. RequestHandler._execute in tornado/web.py parses the body before handler dispatch through HTTPServerRequest._parse_body and parse_body_arguments in tornado/httputil.py, so an unauthenticated request body containing millions of separator-delimited fields can synchronously stall the single-threaded event loop and delay every connection. The body is bounded only by max_buffer_size, which defaults to 104857600 bytes. This issue is fixed in version 6.5.8.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

