CVE-2021-44533
ŚrednieCVSS 5.3Prawdopodobieństwo exploitacji (EPSS)
Bardzo wysokie ryzykoPercentyl 95 - wyżej niż 95% wszystkich znanych CVE
Streszczenie
Node.js w wersjach < 12.22.9, < 14.18.3, < 16.13.2 oraz < 17.3.1 nieprawidłowo obsługiwał wielowartościowe Relative Distinguished Names. Atakujący mogli tworzyć tematy certyfikatów zawierające jednowartościowe Relative Distinguished Name, które były interpretowane jako wielowartościowe, na przykład w celu wstrzyknięcia Common Name, co pozwalało na ominięcie weryfikacji tematu certyfikatu. Dotknięte wersje Node.js, które nie akceptują wielowartościowych Relative Distinguished Names, same nie są podatne na takie ataki, ale kod stron trzecich używający niejednoznacznej prezentacji tematów certyfikatów może być podatny.
Ocena ryzyka
Ominięcie weryfikacji tematu certyfikatu może umożliwić atakującemu podszywanie się pod zaufane podmioty, co może prowadzić do ataków typu man-in-the-middle i naruszenia integralności komunikacji.
Rekomendacja
Zaleca się aktualizację Node.js do wersji zawierającej poprawkę oraz przegląd kodu stron trzecich pod kątem bezpiecznego przetwarzania tematów certyfikatów.
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-2025-23166Wysokie
Metoda C++ SignTraits::DeriveBits() może niepoprawnie wywołać ThrowException() na podstawie danych wejściowych dostarczonych przez użytkownika podczas wykonywania w wątku tła, powodując awarię procesu Node.js. Takie operacje kryptograficzne są powszechnie stosowane do niezaufanych danych wejściowych, co potencjalnie pozwala atakującemu na zdalne wywołanie awarii środowiska Node.js.
- CVE-2025-23085Średnie
W Node.js występuje wyciek pamięci, gdy zdalny peer nagle zamyka gniazdo bez wysłania powiadomienia GOAWAY lub gdy nghttp2 wykryje nieprawidłowy nagłówek i zakończy połączenie. Może to prowadzić do zwiększonego zużycia pamięci i potencjalnego ataku typu denial of service.
- CVE-2024-22018Niskie
W Node.js zidentyfikowano podatność dotyczącą użytkowników eksperymentalnego modelu uprawnień, gdy używana jest flaga --allow-fs-read. Wadliwy model uprawnień nie ogranicza pobierania statystyk plików poprzez API fs.lstat, w wyniku czego złośliwi aktorzy mogą uzyskać statystyki plików, do których nie mają wyraźnego dostępu do odczytu. Podatność dotyczy wszystkich użytkowników korzystających z eksperymentalnego modelu uprawnień w Node.js 20 i Node.js 21.
- CVE-2024-22020Średnie
Luka w Node.js pozwala obejść ograniczenia importu sieciowego poprzez osadzanie importów niebędących sieciowymi w adresach URL typu data. Umożliwia to atakującemu wykonanie dowolnego kodu i naruszenie bezpieczeństwa systemu.
- CVE-2024-27982Średnie
W serwerze HTTP najnowszej wersji Node wykryto krytyczną podatność, gdzie zniekształcone nagłówki mogą prowadzić do przemytu żądań HTTP. Umieszczenie spacji przed nagłówkiem content-length powoduje jego nieprawidłową interpretację, umożliwiając atakującemu przemycenie drugiego żądania w treści pierwszego.
- CVE-2024-27983Wysokie
Atakujący może całkowicie unieruchomić serwer HTTP/2 Node.js, wysyłając niewielką liczbę pakietów z ramkami HTTP/2. Pozostawienie danych w pamięci nghttp2 po resecie, gdy nagłówki z ramką CONTINUATION są przetwarzane, a klient nagle zamyka połączenie TCP, powoduje warunek wyścigu i wyczerpanie zasobów.
- 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.
Oryginalny opis (angielski, źródło NVD)
Node.js < 12.22.9, < 14.18.3, < 16.13.2, and < 17.3.1 did not handle multi-value Relative Distinguished Names correctly. Attackers could craft certificate subjects containing a single-value Relative Distinguished Name that would be interpreted as a multi-value Relative Distinguished Name, for example, in order to inject a Common Name that would allow bypassing the certificate subject verification.Affected versions of Node.js that do not accept multi-value Relative Distinguished Names and are thus not vulnerable to such attacks themselves. However, third-party code that uses node's ambiguous presentation of certificate subjects may be vulnerable.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

