CVE-2026-53539
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 18 - wyżej niż 18% wszystkich znanych CVE
Streszczenie
Podatność w bibliotece Python-Multipart przed wersją 0.0.30 powoduje kwadratową złożoność obliczeniową podczas parsowania treści typu application/x-www-form-urlencoded z separatorem średnika. Atakujący może wysłać małe, spreparowane żądanie zawierające wiele pól oddzielonych średnikami, co prowadzi do znacznego obciążenia procesora i potencjalnego wyczerpania zasobów.
Ocena ryzyka
Ryzyko polega na możliwości przeprowadzenia ataku DoS (Denial of Service) poprzez wysłanie kilku równoczesnych żądań, które mogą wyczerpać procesy robocze serwera, powodując niedostępność usługi.
Rekomendacja
Należy niezwłocznie zaktualizować bibliotekę Python-Multipart do wersji 0.0.30 lub nowszej, która zawiera poprawkę eliminującą tę podatność.
Inne podatności w Python-Multipart przed wersją 0.0.30
Zobacz wszystkie- CVE-2026-53540Niskie
W bibliotece Python-Multipart przed wersją 0.0.31 funkcja parse_form() nie walidowała nagłówka Content-Length przed użyciem go do ograniczenia odczytu treści żądania. Ujemna wartość Content-Length powodowała odczyt całego ciała żądania do pamięci zamiast w stałych fragmentach.
- CVE-2026-53538Niskie
Python-Multipart przed wersją 0.0.30 błędnie traktował średnik (;) jako separator pól w ciałach żądań typu application/x-www-form-urlencoded, podczas gdy standard WHATWG i nowoczesne przeglądarki uznają tylko znak &. Ta różnica w parsowaniu umożliwia atakującemu przemycenie dodatkowych pól formularza obok komponentu sprawdzającego ciało żądania.
- CVE-2026-53537Niskie
Podatność w bibliotece Python-Multipart przed wersją 0.0.30 polega na tym, że funkcja parse_options_header dekoduje nagłówki Content-Disposition i Content-Type z użyciem RFC 2231/5987, co pozwala na przemycenie alternatywnej nazwy pola lub pliku (filename*) w formacie multipart/form-data. Atakujący może wykorzystać różnice w interpretacji tych nagłówków między komponentami bezpieczeństwa (WAF, proxy) a backendem, aby ominąć inspekcję.
Oryginalny opis (angielski, źródło NVD)
Python-Multipart is a streaming multipart parser for Python. Prior to 0.0.30, when parsing application/x-www-form-urlencoded bodies, QuerystringParser located the field separator with a two step lookup: it first scanned the entire remaining buffer for &, and only when no & existed anywhere ahead did it fall back to scanning for ;. For a body that uses ; as the separator and contains no &, every field iteration performed a full failed & scan over the entire remaining buffer before locating the nearby ;. With N semicolon separated fields in a chunk of size B, this yields O(B^2) byte comparisons per chunk. An attacker can submit a small crafted body of the form a;a;a;... and cause the parser to spend seconds of CPU per request. A handful of concurrent requests can exhaust worker processes. This vulnerability is fixed in 0.0.30.

