CVE-2026-2229
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Podwyższone ryzykoPercentyl 56 - wyżej niż 56% wszystkich znanych CVE
Streszczenie
Klient WebSocket biblioteki undici jest podatny na atak typu odmowa usługi z powodu nieprawidłowej walidacji parametru server_max_window_bits w rozszerzeniu permessage-deflate. Złośliwy serwer może wysłać wartość spoza zakresu 8-15, co powoduje nieobsłużony wyjątek RangeError i natychmiastowe zakończenie procesu Node.js.
Ocena ryzyka
Atakujący serwer WebSocket może zdalnie spowodować awarię aplikacji korzystającej z klienta undici, prowadząc do przerwania działania usługi i potencjalnej utraty dostępności.
Rekomendacja
Należy natychmiast zaktualizować bibliotekę undici do wersji, w której poprawiono walidację parametru server_max_window_bits oraz dodano obsługę wyjątków w createInflateRaw().
Inne podatności w undici
Zobacz wszystkie- CVE-2026-15157Średnie
W bibliotece undici przed wersjami 6.28.0, 7.29.0 i 8.9.0 nie jest walidowana właściwość 'type' w obiektach blobopodobnych tworzonych ręcznie. Atakujący może wstrzyknąć znaki CRLF i dodać dowolne nagłówki HTTP, co może prowadzić do przemycenia drugiego żądania (request smuggling).
- CVE-2026-14643Średnie
W undici przed wersjami 7.29.0 i 8.9.0, interceptor pamięci podręcznej (cache interceptor) nieprawidłowo obsługuje opcjonalne białe znaki wokół znaku równości w dyrektywie Cache-Control. Może to spowodować przechowywanie w pamięci podręcznej odpowiedzi zawierających dane uwierzytelnionego użytkownika i serwowanie ich innym użytkownikom.
- CVE-2026-16728Średnie
W undici przed wersjami 6.28.0, 7.29.0 i 8.9.0, interceptor ponawiania (retry interceptor) może dostarczyć odpowiedź, której długość treści nie zgadza się z nagłówkiem Content-Length. Może to prowadzić do desynchronizacji odpowiedzi, zawieszenia połączenia lub uszkodzenia odpowiedzi u klienta końcowego.
- CVE-2026-16729Średnie
Funkcja setCookie w bibliotece undici przed wersjami 6.28.0, 7.29.0 i 8.9.0 nie w pełni oczyszcza atrybutów ciasteczek. Wartość domeny nie jest sprawdzana pod kątem średników, a wpisy w nieprzetworzonej tablicy nie są oczyszczane, co pozwala atakującemu na wstrzyknięcie dodatkowych atrybutów, takich jak SameSite, HttpOnly czy Secure, bez wiedzy wywołującego.
- CVE-2026-13697Wysokie
W undici przed wersjami 7.29.0 i 8.9.0, interceptor pamięci podręcznej nieprawidłowo obsługuje nieprawidłowe dyrektywy Cache-Control private. Odpowiedź z prywatną dyrektywą o pustej wartości może być przechowywana w współdzielonej pamięci podręcznej i udostępniana innym użytkownikom, ujawniając prywatne dane. Ponadto połączenie niekwalifikowanej i kwalifikowanej dyrektywy private powoduje błąd TypeError, który może przerwać działanie procesu.
- CVE-2026-9697Wysokie
Podatność w bibliotece undici powoduje, że opcja requestTls jest ignorowana przy użyciu ProxyAgent z proxy SOCKS5. Połączenie HTTPS przez tunel SOCKS5 korzysta z domyślnego magazynu zaufania Node.js zamiast z konfiguracji użytkownika.
- CVE-2026-9679Średnie
Parser ciasteczek w undici (parseSetCookie) dekoduje wartości ciasteczek, co może prowadzić do wstrzykiwania nagłówków odpowiedzi HTTP. Aplikacje, które przekazują przetworzone wartości ciasteczek do nagłówków odpowiedzi, stają się podatne na ataki, takie jak przejęcie sesji czy złośliwe przekierowania.
- CVE-2026-9678Średnie
Podatność w Undici pozwala na nieprawidłowe klasyfikowanie odpowiedzi jako cache'owalne, gdy nagłówki Cache-Control zawierają białe znaki. Może to prowadzić do sytuacji, w której dane uwierzytelnionego użytkownika są serwowane innemu użytkownikowi z pamięci podręcznej.
- CVE-2026-6734Wysokie
W bibliotece undici wykryto podatność polegającą na ponownym wykorzystaniu pojedynczej puli połączeń przez Socks5ProxyAgent dla różnych źródeł (originów) bez weryfikacji zgodności. Powoduje to kierowanie żądań do niewłaściwego serwera, wyciek danych uwierzytelniających oraz potencjalne obniżenie poziomu bezpieczeństwa HTTPS do HTTP.
- CVE-2026-11525Niskie
Podatność w bibliotece undici polega na nieprawidłowym parsowaniu atrybutu SameSite w nagłówkach Set-Cookie. Biblioteka akceptuje dowolną wartość zawierającą podciąg 'Strict', 'Lax' lub 'None', zamiast wymaganego przez RFC 6265 dokładnego dopasowania bez względu na wielkość liter. Może to prowadzić do przypisania słabszej polityki SameSite, np. wartość 'NoneOfYourBusiness' jest interpretowana jako 'None' (najbardziej permisywne ustawienie).
Oryginalny opis (angielski, źródło NVD)
ImpactThe undici WebSocket client is vulnerable to a denial-of-service attack due to improper validation of the server_max_window_bits parameter in the permessage-deflate extension. When a WebSocket client connects to a server, it automatically advertises support for permessage-deflate compression. A malicious server can respond with an out-of-range server_max_window_bits value (outside zlib's valid range of 8-15). When the server subsequently sends a compressed frame, the client attempts to create a zlib InflateRaw instance with the invalid windowBits value, causing a synchronous RangeError exception that is not caught, resulting in immediate process termination. The vulnerability exists because: * The isValidClientWindowBits() function only validates that the value contains ASCII digits, not that it falls within the valid range 8-15 * The createInflateRaw() call is not wrapped in a try-catch block * The resulting exception propagates up through the call stack and crashes the Node.js process

