CVE-2018-12120
WysokieCVSS 8.1Prawdopodobieństwo exploitacji (EPSS)
Bardzo wysokie ryzykoPercentyl 91 - wyżej niż 91% wszystkich znanych CVE
Streszczenie
Node.js we wszystkich wersjach przed 6.15.0: port debuggera 5858 domyślnie nasłuchuje na wszystkich interfejsach. Gdy debugger jest włączony przez `node --debug` lub `node debug`, nasłuchuje na porcie 5858 na wszystkich interfejsach, co może pozwolić zdalnym komputerom na podłączenie się do portu debugowania i wykonywanie dowolnego kodu JavaScript. Domyślny interfejs to teraz localhost. Debugger został usunięty w Node.js 8 i zastąpiony inspektorem, więc wersje 8 i późniejsze nie są podatne.
Ocena ryzyka
Atakujący z dostępem sieciowym może podłączyć się do portu debugowania i wykonać dowolny kod JavaScript, co prowadzi do pełnego przejęcia kontroli nad aplikacją. Ryzyko dotyczy tylko wersji Node.js przed 8 z włączonym debuggerem.
Rekomendacja
Zaktualizuj Node.js do wersji 6.15.0 lub nowszej (lub do wersji 8+). Jeśli debugger jest używany, uruchamiaj go z ograniczeniem do localhost (np. `node --debug=localhost`) i nigdy nie wystawiaj portu 5858 na publiczne interfejsy.
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-2025-59464Wysokie
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.
- 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.
Oryginalny opis (angielski, źródło NVD)
Node.js: All versions prior to Node.js 6.15.0: Debugger port 5858 listens on any interface by default: When the debugger is enabled with `node --debug` or `node debug`, it listens to port 5858 on all interfaces by default. This may allow remote computers to attach to the debug port and evaluate arbitrary JavaScript. The default interface is now localhost. It has always been possible to start the debugger on a specific interface, such as `node --debug=localhost`. The debugger was removed in Node.js 8 and replaced with the inspector, so no versions from 8 and later are vulnerable.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

