CVE-2026-115865
Niskie ryzyko· EPSS 15%Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 15 - wyżej niż 15% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Zdalny atakujący może wymusić restart workera każdym żądaniem o rozmiarze kilku bajtów.
Rekomendacja
Zaktualizuj Starlet do wersji 0.33 lub nowszej.
Inne podatności w Starlet
Zobacz wszystkie- CVE-2026-116128Niskie ryzyko· EPSS 15%
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.
- 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-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 before 0.33 for Perl allow a request declaring a large Content-Length to kill a worker by exhausting memory. The request body is read in a loop that asks sysread for all of the remaining declared length at once. Perl grows the read buffer to that size before any data arrives, so a length larger than available memory makes the worker exit with an uncatchable out of memory error before the application is called. A remote attacker can force a worker restart with each request of a few bytes.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

