CVE-2026-86252
ŚrednieCVSS 5.3Streszczenie
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.
Ocena ryzyka
Ryzyko obejmuje możliwość manipulacji strumieniem zdarzeń wysyłanych do klientów, co może prowadzić do wstrzyknięcia fałszywych zdarzeń, naruszenia integralności danych lub ataków na klientów korzystających z EventStream.
Rekomendacja
Zaleca się aktualizację pakietu h3 do wersji 1.15.9 lub nowszej, która zawiera poprawkę eliminującą problem z powrotami karetki.
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-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-86250Wysokie
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.
- 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 1.15.9 fail to sanitize carriage return characters in EventStream data and comment fields, allowing attackers to inject arbitrary SSE events by including unsanitized carriage returns. Attackers can inject event type directives, split single push calls into multiple browser-parsed events, or escape comment fields to inject data, bypassing the prior CVE fix that only addressed newline injection.

