CVE-2026-116128
Niskie ryzyko· EPSS 15%Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 15 - wyżej niż 15% wszystkich znanych CVE
Streszczenie
W Starlet w wersjach od 0.20 przed 0.33 dla Perla występuje wyczerpanie pamięci przez nieograniczone buforowanie przy dekodowaniu ciał żądań w formacie chunked. Dekoder dodaje każdy odczyt do jednego bufora nieprzetworzonego wejścia; nic nie ogranicza długości wiersza rozmiaru chunka, więc wiersz bez CRLF powiększa bufor tak długo, jak klient wysyła dane, a limit czasu odczytu restartuje się po każdym odczycie; dane dużego chunka są również trzymane w buforze do nadejścia całego chunka.
Ocena ryzyka
Zdalny atakujący może wyczerpać pamięć workera pojedynczym żądaniem.
Rekomendacja
Zaktualizuj Starlet do wersji 0.33 lub nowszej.
Inne podatności w Starlet
Zobacz wszystkie- CVE-2026-116127Niskie ryzyko· EPSS 5%
W Starlet w wersjach przed 0.33 dla Perla odpowiedzi na żądania HEAD zawierają ciało, co psuje kolejną odpowiedź na połączeniu trwałym lub potokowym. Metoda żądania nie jest przekazywana do writera odpowiedzi, więc ciało zwrócone przez aplikację dla HEAD jest wysyłane; z Plack::Middleware::Head ciało jest puste, ale odpowiedź HTTP/1.1 bez nagłówka Content-Length i tak otrzymuje terminator kodowania chunked; odpowiedzi ze statusem 204 lub 304 są również wysyłane z ciałem.
- CVE-2026-115866Niskie ryzyko· EPSS 15%
W Starlet w wersjach od 0.20 przed 0.33 dla Perla występuje wyczerpanie CPU przez backtracking wyrażeń regularnych przy dekodowaniu ciał żądań w formacie chunked. Wiersz rozmiaru chunka jest dopasowywany jako ciąg cyfr hex, następnie .* i CRLF; ciąg zakończony samym LF, a potem CRLF, nigdy nie pasuje, a silnik ponawia dopasowanie raz na każdą cyfrę, więc czas rośnie z kwadratem długości ciągu; nic nie ogranicza długości ciągu, który może obejmować kilka odczytów.
- CVE-2026-115865Niskie ryzyko· EPSS 15%
W Starlet w wersjach przed 0.33 dla Perla żądanie deklarujące duży Content-Length może zabić worker przez wyczerpanie pamięci. Ciało żądania jest czytane w pętli, która prosi sysread o całą pozostałą zadeklarowaną długość naraz; Perl powiększa bufor odczytu do tego rozmiaru przed nadejściem jakichkolwiek danych, więc długość większa niż dostępna pamięć powoduje zakończenie workera nieprzechwytywalnym błędem braku pamięci, zanim aplikacja zostanie wywołana.
- CVE-2026-40561Średnie
Starlet w wersji do 0.31 dla Perla pozwala na przemyt żądań HTTP (HTTP Request Smuggling) poprzez nieprawidłowe pierwszeństwo nagłówków. Starlet błędnie priorytetyzuje "Content-Length" nad "Transfer-Encoding: chunked", gdy oba nagłówki są obecne w żądaniu HTTP, podczas gdy zgodnie z RFC 7230 3.3.3 to Transfer-Encoding powinien mieć pierwszeństwo.
Oryginalny opis (angielski, źródło NVD)
Starlet versions from 0.20 before 0.33 for Perl allow memory exhaustion via unbounded buffering when decoding chunked request bodies. The decoder adds each read to one buffer of unconsumed input. Nothing limits the length of a chunk-size line, so a line without a CRLF grows the buffer for as long as the client keeps sending, and the read timeout restarts after every read. The data of a large chunk is also held in the buffer until the whole chunk has arrived. A remote attacker can exhaust a worker's memory with a single request.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

