CVE-2026-19204
WysokieCVSS 8.7Streszczenie
Klient może wysłać ramkę WebSocket z nieznanym kodem operacji i bardzo dużą zadeklarowaną długością ładunku, co powoduje, że Jetty próbuje zaalokować dużą ilość pamięci i potencjalnie wyczerpuje stertę JVM. Dzieje się tak, gdy włączona jest auto-fragmentacja, ponieważ nieznane kody operacji omijają normalne ograniczenia rozmiaru ramki, a alokacja ładunku następuje przed walidacją kodu operacji.
Ocena ryzyka
Zdalny atakujący może spowodować wyczerpanie pamięci JVM, co prowadzi do awarii usługi (Denial of Service) i niedostępności aplikacji.
Rekomendacja
Zaleca się aktualizację Jetty do wersji, która zawiera poprawkę tej podatności. Jeśli nie jest to możliwe, należy rozważyć wyłączenie auto-fragmentacji lub ograniczenie dostępu do WebSocket.
Inne podatności w Jetty
Zobacz wszystkie- CVE-2026-19203Wysokie
Klient może wysyłać specjalnie spreparowane żądania HTTP/1.1 chunked do serwera Jetty, które powodują, że Jetty i pośredniczący proxy interpretują różne granice żądań, co może prowadzić do przemycania żądań HTTP (HTTP request smuggling). Jest to spowodowane akceptowaniem przez Jetty pojedynczego znaku LF jako terminatora w częściach parsowania żądań chunked. W zależności od wersji Jetty i skonfigurowanego trybu zgodności HTTP może to wystąpić w rozszerzeniach chunk, terminacji danych chunk lub terminacji nagłówków trailer.
- CVE-2026-12611Wysokie
Klient może wysyłać żądania HTTP/2 do serwera Jetty, które powodują blokowanie zapisów, które nigdy nie są odblokowywane, co ostatecznie prowadzi do zablokowania wszystkich wątków i całkowitej niedostępności serwera. Jest to spowodowane warunkiem wyścigu w serwerze podczas obsługi ramek RST_STREAM i GOAWAY wysyłanych przez klienta. Warunek wyścigu "resetuje" HTTP2Flusher.terminated, wcześniej ustawiony na nie-null, do wartości null, co pozwala na enqueuing wpisów w flusher, które jednak nigdy nie zostaną przetworzone. Te nieprzetworzone wpisy to te, które miałyby odblokować zablokowane wątki.
- CVE-2017-9735Wysokie
Jetty w wersjach do 9.4.x jest podatny na atak wykorzystujący kanał czasowy w pliku util/security/Password.java, co ułatwia zdalnym atakującym uzyskanie dostępu poprzez obserwację czasu, jaki upływa przed odrzuceniem niepoprawnych haseł.
Oryginalny opis (angielski, źródło NVD)
A client may send a WebSocket frame with an unknown opcode and a very large declared payload length, causing Jetty to attempt a large memory allocation and potentially exhaust the JVM heap. This occurs when auto-fragmentation is enabled, as unknown opcodes bypass the normal maximum frame size handling and payload allocation occurs before the opcode is validated.

