CVE-2026-86250
WysokieCVSS 7.5Streszczenie
Wersje h3 przed 2.0.1-rc.18 nie walidują liczby fragmentów (chunk count) parsowanej z wartości cookie kontrolowanych przez użytkownika w funkcjach setChunkedCookie() i deleteChunkedCookie(). Atakujący może wysłać spreparowany nagłówek cookie z bardzo dużą liczbą fragmentów, co wywołuje pętlę czyszczenia o złożoności O(n²) i zawiesza proces serwera.
Ocena ryzyka
Atak DoS może spowodować niedostępność usługi, co wpływa na ciągłość działania aplikacji.
Rekomendacja
Zaktualizuj h3 do wersji 2.0.1-rc.18 lub nowszej, która zawiera poprawkę walidacji liczby fragmentów.
Inne podatności w h3
Zobacz wszystkie- CVE-2026-86253Średnie
Pakiet npm h3 w wersjach do 2.0.1-rc.14 zawiera podatność na traversal ścieżek w funkcji serveStatic(). W środowisku Node.js event.url.pathname nie jest normalizowany, więc zakodowane procentowo segmenty kropek (%2e%2e) są przekazywane do decodeURI() i dekodowane do sekwencji ../ bez sanityzacji. Zdalny, nieuwierzytelniony atakujący może wysyłać spreparowane żądania do punktów końcowych obsługiwanych przez serveStatic(), aby odczytać dowolne pliki poza zamierzonym katalogiem statycznym. Poprawiono w wersjach 1.15.6 i 2.0.1-rc.15.
- CVE-2026-86252Średnie
Wersje h3 przed 1.15.9 nie sanityzują znaków powrotu karetki w polach danych i komentarzy EventStream, co pozwala atakującym na wstrzykiwanie dowolnych zdarzeń SSE poprzez umieszczenie niesanityzowanych powrotów karetki. Atakujący mogą wstrzykiwać dyrektywy typu zdarzenia, dzielić pojedyncze wywołania push na wiele zdarzeń parsowanych przez przeglądarkę lub uciekać z pól komentarzy, aby wstrzykiwać dane, omijając wcześniejszą poprawkę CVE, która dotyczyła tylko wstrzykiwania znaków nowej linii.
- CVE-2026-86251Średnie
Wersje h3 przed 1.15.9 zawierają podatność na traversal ścieżek w narzędziu serveStatic. Błąd podwójnego dekodowania pozwala, aby ścieżka żądania zawierająca podwójnie zakodowane sekwencje kropek (np. %252e%252e) została zdekodowana do %2e%2e, co przeżywa funkcję resolveDotSegments(), ponieważ ta funkcja sprawdza tylko dosłowne znaki '.'. Gdy wynikowy identyfikator zasobu jest rozwiązywany przez backendy oparte na URL (CDN, S3, magazyn obiektów), %2e%2e jest interpretowane jako '..' zgodnie z RFC 3986, umożliwiając traversal ścieżek do odczytu dowolnych plików z backendu.
- CVE-2026-86205Średnie
Wersje h3 przed 2.0.1-rc.18 zawierają podatność na otwarte przekierowanie w narzędziu redirectBack(), które nie sanityzuje ścieżek względnych protokołu w ścieżce nagłówka Referer. Atakujący mogą skonstruować URL o tym samym pochodzeniu z segmentem ścieżki z podwójnym ukośnikiem, który przechodzi walidację pochodzenia, ale generuje nagłówek Location interpretowany przez przeglądarki jako przekierowanie względne protokołu do zewnętrznej domeny.
Oryginalny opis (angielski, źródło NVD)
h3 versions before 2.0.1-rc.18 fail to validate the chunk count parsed from user-controlled cookie values in setChunkedCookie() and deleteChunkedCookie() functions. Attackers can send a crafted cookie header with an extremely large chunk count to trigger an O(n²) cleanup loop that hangs the server process.

