CVE-2025-59464
WysokieStreszczenie
Podatność powoduje wyciek pamięci w integracji OpenSSL w Node.js podczas konwersji pól certyfikatu X.509 do UTF-8 bez zwalniania bufora. Aplikacje wywołujące socket.getPeerCertificate(true) powodują wyciek pamięci przy każdym polu certyfikatu, co umożliwia zdalnym klientom ciągły wzrost zużycia pamięci przez powtarzane połączenia TLS.
Ocena ryzyka
Ryzyko polega na możliwości wyczerpania zasobów i odmowy usługi (DoS) w długim okresie, gdy atakujący nawiązuje wiele połączeń TLS, powodując stopniowy wzrost zużycia pamięci serwera.
Rekomendacja
Zaleca się natychmiastowe zaktualizowanie Node.js do wersji zawierającej poprawkę tej podatności oraz monitorowanie zużycia pamięci procesów Node.js w celu wykrycia anomalii.
Inne podatności w Node.js
Zobacz wszystkie- CVE-2026-21637Wysokie
Podatność w obsłudze błędów TLS w Node.js pozwala zdalnemu atakującemu na awarię lub wyczerpanie zasobów serwera TLS, gdy używane są wywołania zwrotne `pskCallback` lub `ALPNCallback`. Wyjątki synchroniczne zgłaszane podczas tych wywołań omijają standardowe ścieżki obsługi błędów TLS, co prowadzi do natychmiastowego zakończenia procesu lub cichego wycieku deskryptorów plików, a w konsekwencji do odmowy usługi.
- CVE-2025-59466Wysokie
W Node.js wykryto błąd w obsłudze błędów, przez który błędy „Maximum call stack size exceeded” stają się nieprzechwytywalne, gdy włączony jest `async_hooks.createHook()`. Zamiast trafić do `process.on('uncaughtException')`, proces kończy się, co czyni awarię nieodwracalną. Aplikacje korzystające z `AsyncLocalStorage` (wersje v22, v20) lub `async_hooks.createHook()` (wersje v24, v22, v20) stają się podatne na awarie typu denial-of-service wywołane głęboką rekurencją w określonych warunkach.
- CVE-2015-7384Wysokie
Node.js w wersjach 4.0.0, 4.1.0 oraz 4.1.1 umożliwia zdalnym atakującym spowodowanie odmowy usługi.
- CVE-2017-14849Wysokie
Node.js w wersji 8.5.0 przed 8.6.0 umożliwia zdalnym atakującym dostęp do niezamierzonych plików, ponieważ zmiana w obsłudze '..' była niekompatybilna z walidacją ścieżek używaną przez nieokreślone moduły społecznościowe.
- CVE-2017-11499Wysokie
Node.js w wersjach od 4.0 do 4.8.3, wszystkie wersje 5.x, oraz wersje 6.0 do 6.11.0, 7.0 do 7.10.0 i 8.0 do 8.1.3 były podatne na ataki DoS z wykorzystaniem floodingu haszy. Problem wynikał z tego, że nasiona HashTable były stałe w danej wersji Node.js.
- CVE-2016-2216Wysokie
Kod parsowania nagłówków HTTP w Node.js w wersjach 0.10.x przed 0.10.42, 0.11.6 do 0.11.16, 0.12.x przed 0.12.10, 4.x przed 4.3.0 oraz 5.x przed 5.6.0 pozwala zdalnym atakującym na obejście mechanizmu ochrony przed dzieleniem odpowiedzi HTTP za pomocą zakodowanych w UTF-8 znaków Unicode w nagłówku HTTP.
- CVE-2016-2086Wysokie
Node.js w wersjach 0.10.x przed 0.10.42, 0.12.x przed 0.12.10, 4.x przed 4.3.0 oraz 5.x przed 5.6.0 jest podatny na ataki smugglingu żądań HTTP, które mogą być przeprowadzane przez złośliwie skonstruowany nagłówek Content-Length.
- CVE-2015-8027Wysokie
Node.js w wersjach 0.12.x przed 0.12.9, 4.x przed 4.2.3 oraz 5.x przed 5.1.1 nie zapewnia dostępności parsera dla każdego gniazda HTTP, co umożliwia zdalnym atakującym spowodowanie odmowy usługi poprzez złożone żądanie HTTP.
- CVE-2026-21710Wysokie
W Node.js wykryto błąd w obsłudze żądań HTTP, który powoduje nieprzechwycony wyjątek TypeError, gdy nagłówek o nazwie __proto__ jest przesyłany w żądaniu, a aplikacja odczytuje właściwość req.headersDistinct. Wyjątek jest rzucany synchronicznie w getterze właściwości i nie może być przechwycony przez nasłuchiwacze zdarzeń error.
- CVE-2026-21636Krytyczne
Wada w modelu uprawnień Node.js pozwala na obejście ograniczeń sieciowych przez połączenia Unix Domain Socket (UDS), gdy włączona jest opcja `--permission`. Nawet bez `--allow-net`, dane kontrolowane przez atakującego (takie jak URL-e lub opcje socketPath) mogą łączyć się z dowolnymi lokalnymi gniazdami przez net, tls lub undici/fetch. To narusza zamierzoną granicę bezpieczeństwa modelu uprawnień i umożliwia dostęp do uprzywilejowanych usług lokalnych, co może prowadzić do eskalacji uprawnień, wycieku danych lub lokalnego wykonania kodu. Problem dotyczy wersji v25.
Oryginalny opis (angielski, źródło NVD)
A memory leak in Node.js’s OpenSSL integration occurs when converting `X.509` certificate fields to UTF-8 without freeing the allocated buffer. When applications call `socket.getPeerCertificate(true)`, each certificate field leaks memory, allowing remote clients to trigger steady memory growth through repeated TLS connections. Over time this can lead to resource exhaustion and denial of service.

