CVE-2026-116285
Niskie ryzyko· EPSS 21%Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 21 - wyżej niż 21% wszystkich znanych CVE
Streszczenie
HTTP::Body w wersjach przed 1.23_01 dla Perla pozwala na wyczerpanie CPU poprzez kwadratowy backtracking wyrażenia regularnego przy parsowaniu ciał żądań chunked. Dopasowanie linii rozmiaru fragmentu może zająć czas kwadratowy w stosunku do jej długości, bez ograniczenia długości linii.
Ocena ryzyka
Zdalny atakujący może wyczerpać CPU aplikacji przetwarzającej żądania chunked, powodując odmowę usługi.
Rekomendacja
Zaktualizuj HTTP::Body do wersji 1.23_01 lub nowszej.
Inne podatności w HTTP::Body
Zobacz wszystkie- CVE-2026-117501Niskie ryzyko· EPSS 15%
HTTP::Body w wersjach przed 1.24_01 dla Perla pozwala na wyczerpanie pamięci poprzez nieograniczone buforowanie ciał żądań w trybie chunked. Parser może czekać w nieskończoność na poprawną linię rozmiaru fragmentu, a każde kolejne wywołanie add() powiększa bufor.
- CVE-2026-117500Niskie ryzyko· EPSS 18%
HTTP::Body w wersjach przed 1.24_01 dla Perla pozwala na wyczerpanie CPU poprzez backtracking wyrażenia regularnego na nazwie pliku w uploadzie multipart. Nazwa bazowa złożona z wielu kropek i kończąca się backslashem powoduje kwadratowy czas dopasowania.
- CVE-2026-116531Niskie ryzyko· EPSS 21%
HTTP::Body w wersjach przed 1.23_01 dla Perla traci granice fragmentów w ciałach żądań chunked, gdy odczyt kończy się wewnątrz fragmentu. Może to prowadzić do zawieszenia serwera oczekującego na zakończenie ciała lub do przedwczesnego zakończenia i potraktowania resztek jako kolejnego żądania.
- CVE-2026-116135Niskie ryzyko· EPSS 28%
Biblioteka HTTP::Body w wersjach przed 1.23_01 dla Perla pomija mieszane procentowe sekwencje ucieczki w polach formularza urlencoded zamiast je dekodować. Tabela dekodowania zawiera tylko w pełni małe i w pełni wielkie litery każdej pary szesnastkowej, podczas gdy wzorzec ucieczki dopasowuje obie wielkości. Sekwencja taka jak %aB nie znajduje wpisu i jest zastępowana niczym, łącząc bajty po obu stronach.
- CVE-2026-116134Niskie ryzyko· EPSS 24%
Biblioteka HTTP::Body w wersjach przed 1.23_01 dla Perla pozwala na wyczerpanie pamięci poprzez nieograniczony blok nagłówka części multipart. Parser multipart przyjmuje wszystko do pierwszego pustego wiersza po granicy jako blok nagłówka części, bez limitu rozmiaru lub liczby wierszy. Każdy wiersz jest przechowywany w hashu nagłówka części, więc blok krótkich wierszy kosztuje około 60 bajtów pamięci na bajt wejściowy.
- CVE-2026-116133Niskie ryzyko· EPSS 24%
Biblioteka HTTP::Body w wersjach przed 1.23_01 dla Perla pozwala na wyczerpanie CPU poprzez kwadratowe ponowne skanowanie ciała multipart z brakującą lub nieprawidłową granicą. Przed pierwszą częścią i między częściami parser multipart przeszukuje całe buforowane ciało w poszukiwaniu następnej granicy. Przy braku trafienia zachowuje wszystko i przeszukuje ponownie od początku przy nadejściu następnego fragmentu, więc ciało bez granicy lub z ogranicznikiem niepoprzedzonym CRLF ani "--" jest skanowane ponownie przy każdym fragmencie, zajmując czas kwadratowy względem rozmiaru.
- CVE-2026-116132Niskie ryzyko· EPSS 28%
Podatność w bibliotece HTTP::Body dla Perla (wersje przed 1.23_01) polega na pozostawianiu na dysku plików tymczasowych z niekompletnych uploadów multipart. Parser tworzy plik tymczasowy zaraz po rozpoczęciu części plikowej, ale dodaje go do listy uploadów dopiero po jej zakończeniu, więc przerwany upload pozostawia plik, którego nic nie usuwa.
- CVE-2026-116131Niskie ryzyko· EPSS 24%
Podatność w bibliotece HTTP::Body dla Perla (wersje przed 1.23_01) pozwala na wyczerpanie pamięci i plików tymczasowych poprzez nieograniczoną liczbę pól formularza i części multipart. Parser urlencoded dzieli całe ciało żądania na separatory jednocześnie, zużywając około 90 bajtów pamięci na każdy bajt separatora, a parser multipart tworzy plik tymczasowy dla każdej części z nazwą pliku, bez limitu liczby pól lub części.
Oryginalny opis (angielski, źródło NVD)
HTTP::Body versions before 1.23_01 for Perl allow CPU exhaustion via quadratic regex backtracking when parsing chunked request bodies. In chunked mode, used when no content length is given, add() matches each chunk-size line with `/^([\da-fA-F]+).*\x0D\x0A/`. On a line of hex digits whose first LF has no CR before it, the digits and `.*` backtrack against each other, so a single add() takes time quadratic in the line's length. Nothing limits how long the line can be. A remote attacker can exhaust CPU in applications that pass chunked request bodies to HTTP::Body.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

