CVE-2026-16728
ŚrednieCVSS 4.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 7 - wyżej niż 7% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Ryzyko polega na możliwości ataku typu response desynchronization, co może prowadzić do manipulacji odpowiedziami, przechwycenia sesji lub przerwania połączeń, szczególnie w aplikacjach proxy lub bramach.
Rekomendacja
Zaleca się aktualizację undici do wersji 6.28.0, 7.29.0 lub 8.9.0 w zależności od używanej gałęzi.
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-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).
- CVE-2026-12151Wysokie
Klient WebSocket biblioteki undici nie ogranicza liczby fragmentów wiadomości, co pozwala złośliwemu serwerowi na wysłanie wielu małych ramek kontynuacji. Prowadzi to do niekontrolowanego wzrostu pamięci i wyczerpania zasobów (DoS).
Oryginalny opis (angielski, źródło NVD)
undici's retry interceptor can deliver a response whose body length does not match the Content-Length header exposed to the application after a retry or resume of a partial response. In undici before 6.28.0, from 7.0.0 up to before 7.29.0, and from 8.0.0 up to before 8.9.0, a malicious or faulty upstream can return a partial response with a mismatched framing header, close the socket early, and have the retry interceptor assemble a body of a different length while the original Content-Length stays attached. Applications that use the retry interceptor and forward upstream headers and bodies downstream, such as proxies or gateways, may then emit an invalid HTTP response with a stale Content-Length, leading to downstream response desynchronization, connection hangs, or response corruption. Exploitation requires the retry interceptor enabled, an upstream returning a mismatched partial response, and a downstream forwarder that does not remove or recalculate Content-Length. The issue is fixed in undici 6.28.0, 7.29.0, and 8.9.0.

