CVE-2026-84933
ŚrednieCVSS 6.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 16 - wyżej niż 16% wszystkich znanych CVE
Streszczenie
Interceptor pamięci podręcznej w undici nie obsługuje nagłówka odpowiedzi Set-Cookie w żadnym miejscu swojej ścieżki pamięci podręcznej, więc nie odmawia przechowywania ani nie usuwa tego nagłówka. W trybie współdzielonej pamięci podręcznej, który jest domyślny, odpowiedź, która w przeciwnym razie mogłaby być buforowana i zawiera nagłówek Set-Cookie, na przykład oznaczony dyrektywami public i max-age, jest przechowywana, a następnie ponownie serwowana późniejszemu wywołującemu, który pasuje do tego samego klucza pamięci podręcznej. W rezultacie ciasteczko jednego wywołującego jest ujawniane innemu wywołującemu, a niezaufany serwer może wstrzykiwać ciasteczka do buforowanych odpowiedzi serwowanych wszystkim kolejnym wywołującym. Narusza to wymóg, że współdzielona pamięć podręczna nie może przechowywać ciasteczek. Dotyczy to wersji undici od 7.0.0 do 7.29.1 oraz od 8.0.0 do 8.10.2. Użytkownicy powinni zaktualizować undici do wersji 7.29.1 lub 8.10.2.
Ocena ryzyka
Ujawnienie ciasteczek między różnymi użytkownikami współdzielącymi pamięć podręczną może prowadzić do przejęcia sesji lub kradzieży danych uwierzytelniających. Dodatkowo niezaufany serwer może wstrzykiwać ciasteczka do odpowiedzi, co może umożliwić ataki typu session fixation.
Rekomendacja
Zaktualizuj bibliotekę undici do wersji 7.29.1 lub 8.10.2 (lub nowszej) w zależności od używanej linii wersji.
Inne podatności w undici
Zobacz wszystkie- CVE-2026-87029Średnie
undici to biblioteka klienta HTTP dla Node.js. W wersjach 7.15.0 do 7.30.0 oraz 8.0.0 do 8.12.1 interceptor dekompresji przekazuje zdekompresowane dane do handlera bez przechwytywania wyjątków z callbacków strumienia zlib. Gdy handler zgłasza wyjątek asynchronicznie z callbacku zlib, staje się on nieprzechwyconym wyjątkiem, który kończy proces Node.js. Złośliwy serwer HTTP może wysłać małe skompresowane ciało, które dekompresuje się do rozmiaru przekraczającego limit, powodując awarię klienta.
- CVE-2026-87018Wysokie
undici to biblioteka klienta HTTP dla Node.js. W wersjach od 4.2.1 do 6.29.0, od 7.0.0 do 7.30.0 oraz od 8.0.0 do 8.12.1 proces klienta ulega awarii, gdy serwer TLS 1.2 przeprowadzi renegocjację po nawiązaniu połączenia i przedstawi inny certyfikat zaufany przez CA, którego nazwa hosta nie pasuje do żądanego hosta. Node.js ponownie wykonuje weryfikację nazwy hosta na renegocjowanym uzgadnianiu i niszczy gniazdo z błędem certificate-altname, ale obsługa błędów ustanowionego gniazda w undici zakładała, że ten kod błędu nigdy nie wystąpi, więc kontrolowany przez drugą stronę błąd staje się nieprzechwyconym asercją, która kończy proces Node.js, dotykając zarówno ścieżek HTTP/1.1, jak i HTTP/2. Złośliwy lub przejęty punkt końcowy HTTPS osiągany przez undici lub globalny fetch() może zawiesić klienta pojedynczą renegocjacją zainicjowaną przez serwer, powodując awarię wszystkich żądań w locie i pracy w tle, a wykorzystanie nie wymaga kompromitacji CA, ponieważ atakujący kontroluje punkt końcowy i może przedstawić dwa zwykłe ważne certyfikaty. Dotyczy tylko TLS 1.2, ponieważ TLS 1.3 nie obsługuje renegocjacji. Problem naprawiono w undici 6.29.1, 7.30.1 i 8.12.2, a użytkownicy powinni zaktualizować do jednej z tych wersji lub nowszej. Jako obejście należy ograniczyć połączenia wychodzące do TLS 1.3, aby renegocjacja nie mogła wystąpić, gdy docelowe punkty końcowe to obsługują.
- CVE-2026-109932Średnie
Biblioteka undici (wersje 5.15.0-6.29.0, 7.0.0-7.30.0, 8.0.0-8.12.1) ma podatność w kliencie WebSocket, która pozwala złośliwemu serwerowi na wyczerpanie pamięci procesu poprzez wysyłanie ramek PING bez odczytywania odpowiedzi PONG, co prowadzi do nieograniczonego wzrostu kolejki zapisu i sterty.
- CVE-2026-109924Średnie
Biblioteka undici (wersje 6.5.0-6.29.0, 7.0.0-7.30.0, 8.0.0-8.12.1) ma podatność w kliencie EventSource, która pozwala złośliwemu serwerowi na wyczerpanie pamięci procesu poprzez wysyłanie wielu małych pól danych bez separatora lub pojedynczej nieukończonej linii podzielonej na wiele fragmentów, co prowadzi do gromadzenia stanu parsera poza limitami.
- CVE-2026-109869Wysokie
undici, biblioteka klienta HTTP dla Node.js, w wersjach 6.23.0-6.29.0, 7.18.0-7.30.0 i 8.0.0-8.12.1 ulega awarii procesu Node.js, gdy złośliwy serwer zwróci odpowiedź z więcej niż pięcioma kodowaniami treści i zamknie połączenie przed wysłaniem ciała. undici odrzuca taką odpowiedź z powodu limitu kodowań, ale utworzony wcześniej strumień wewnętrzny nie ma podpiętego listenera błędów ani przerwania żądania, więc wczesne zamknięcie powoduje niezobsłużony błąd i zakończenie procesu.
- CVE-2026-109841Średnie
Biblioteka undici (wersje 7.15.0-7.30.0, 8.0.0-8.12.1) ma podatność w implementacji fetch(), która weryfikuje metadane Subresource Integrity (SRI) poprzez dopasowanie tokenu algorytmu do zestawu tylko małych liter, przez co ważny token w innym przypadku (np. SHA256) jest ignorowany, a odpowiedź jest akceptowana bez sprawdzenia integralności.
- CVE-2026-109829Wysokie
undici w wersjach 7.0.0-7.30.0 i 8.0.0-8.12.1, gdy originless Agent łączy interceptory redirect i cache w tej kolejności ze wspólnym store'em cache, buduje klucz cache z oryginalnego URL przed zmianą origin przez redirect. Odpowiedź po przekierowaniu cross-origin jest zapisywana pod oryginalnym kluczem, co umożliwia trwałe zatrucie cache oraz ujawnienie prywatnych danych nieuwierzytelnionemu wywołującemu.
- CVE-2026-109383Wysokie
undici w wersjach 4.0.0-6.29.0, 7.0.0-7.30.0 i 8.0.0-8.12.1 przekazuje opcje konstruktora Agent przez głębokie klonowanie oparte na JSON przed przekazaniem do puli per-origin. Ponieważ JSON nie reprezentuje funkcji, opcja tls z callbackiem checkServerIdentity jest po cichu usuwana, przez co peer TLS, którego certyfikat miał być odrzucony przez niestandardowy callback, ale przechodzi domyślne sprawdzenia Node, jest akceptowany.
- CVE-2026-109855Wysokie
W bibliotece undici (klient HTTP dla Node.js) w wersjach 8.11.0 i 8.11.1 eksperymentalny klient WebSocket, domyślnie włączony gdy dozwolone jest HTTP/2, błędnie obsługuje nieudany handshake WebSocket przez HTTP/2: żądanie jest już oznaczone jako zakończone, więc przerwanie staje się bezskuteczne, a strumień HTTP/2 pozostaje otwarty bez nasłuchiwacza błędów. Gdy złośliwy serwer zniszczy połączenie, osierocony strumień emituje nieobsłużony błąd i proces Node.js kończy działanie.
- CVE-2026-84890Średnie
Interceptor dekompresji w undici dekompresuje ciała odpowiedzi zgodnie z niezaufanym nagłówkiem Content-Encoding. Liczba warstw kodowania jest ograniczona, ale całkowity rozmiar zdekompresowanego wyjścia jest nieograniczony i nie ma opcji konfiguracji, aby go ograniczyć. Złośliwy lub wadliwy serwer może zwrócić mały skompresowany ładunek (bombę kompresyjną), który rozwija się do setek megabajtów lub więcej w pamięci klienta, co prowadzi do asymetrycznego zużycia zasobów, mogącego wyczerpać pamięć i spowodować awarię procesu. Dotyczy to wersji undici od 7.15.0 do 7.29.1 oraz od 8.0.0 do 8.10.2. Użytkownicy powinni zaktualizować do undici 7.29.1 lub 8.10.2.
Oryginalny opis (angielski, źródło NVD)
undici's cache interceptor does not handle the Set-Cookie response header anywhere in its cache path, so it neither refuses to store nor strips that header. In shared cache mode, which is the default, an otherwise cacheable response that carries a Set-Cookie header, for example one marked with a public and max-age directive, is stored and then re-served to a later caller that matches the same cache key. As a result one caller's cookie is disclosed to a different caller, and an untrusted server can inject cookies into cached responses served to all subsequent callers. This violates the requirement that a shared cache must not store cookies. This affects undici versions from 7.0.0 up to 7.29.1 and from 8.0.0 up to 8.10.2. Users should upgrade to undici 7.29.1 or 8.10.2.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

