CVE-2026-100702
ŚrednieCVSS 5.9Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 15 - wyżej niż 15% wszystkich znanych CVE
Streszczenie
Nodemailer przed wersją 10.0.2 nie spłaszcza poprawnie głęboko zagnieżdżonych tablic w polach odbiorców, takich jak to, cc i bcc, co pozwala atakującym spowodować wyczerpanie stosu. Atakujący może dostarczyć głęboko zagnieżdżoną tablicę JSON odbiorców, która wyzwala rekurencyjną konwersję Array.toString(), wyczerpując stos i kończąc proces Node.js.
Ocena ryzyka
Ryzyko obejmuje możliwość zdalnego zatrzymania procesu Node.js (DoS) poprzez wysłanie specjalnie spreparowanej wiadomości e-mail z zagnieżdżonymi tablicami odbiorców.
Rekomendacja
Zaktualizuj Nodemailer do wersji 10.0.2 lub nowszej, która naprawia podatność.
Inne podatności w Nodemailer
Zobacz wszystkie- GHSA-wmmp-3585-3rmpŚrednie
Nodemailer rozwiązuje międzynarodowe (IDN / nie-ASCII) domeny odbiorcy na inny etykietę Punycode (xn--) niż standardowe parsery zgodne z UTS-46 (np. przeglądarki, URL Standard, Node's url.domainToASCII, Python's idna). Jego normalizator adresów _normalizeAddress może prowadzić do błędnego rozpoznania domeny, co może być wykorzystane do ataków typu phishing lub przejęcia wiadomości.
- GHSA-2x7j-588g-ccc2Wysokie
Parser adresów e-mail w Nodemailer (lib/addressparser/index.js) przetwarza listę adresów oddzielonych przecinkami w czasie kwadratowym (O(n²)) w zależności od liczby adresów. Pojedynczy spreparowany ciąg adresów (np. w polach To, Cc, Bcc, From, Reply-To) może spowodować znaczne spowolnienie.
- GHSA-cc9r-2j5m-2m83Średnie
Parser adresów e-mail w Nodemailer traktuje komentarz RFC 5322 (w nawiasach) w domenie jako miejsce łączenia tekstu, zamiast jako białe znaki składane (CFWS), które kończą domenę. To może prowadzić do błędnego parsowania adresu, np. [email protected](x)evil.c..., umożliwiając atakującemu przekierowanie wiadomości lub obejście walidacji.
- GHSA-8m3c-c648-2xjjŚrednie
Opcje disableFileAccess i disableUrlAccess w Nodemailer służą jako piaskownica uniemożliwiająca niezaufanej treści wiadomości czytanie lokalnych plików lub wykonywanie żądań HTTP(S). Poprawka dla wcześniejszej podatności (GHSA-wqvq-jvpq-h66f) może być niekompletna, umożliwiając obejście zabezpieczeń.
- GHSA-r7g4-qg5f-qqm2Średnie
Nodemailer wyłącza weryfikację certyfikatów TLS w swoim wewnętrznym kliencie HTTPS, ustawiając rejectUnauthorized: false w pliku lib/fetch/index.js. Powoduje to, że żądania tokenów OAuth2 ufają nieprawidłowym lub samopodpisanym certyfikatom HTTPS.
- GHSA-8vvx-rff5-p5rqŚrednie
Podatność w pakiecie nodemailer (npm) dotyczy wersji od 2.7.2 do 10.0.1. Szczegóły podatności nie są w pełni opisane w dostarczonym fragmencie, ale potwierdzono podatne wersje.
- GHSA-268h-hp4c-crq3Średnie
Podatność w bibliotece Nodemailer umożliwia wstrzyknięcie nagłówków poprzez pole `list.*.comment`, które nie jest oczyszczane ze znaków CR (`\r`) i LF (`\n`). Atakujący może dostarczyć złośliwą wartość w tym polu, co prowadzi do fałszowania nagłówków wiadomości e-mail.
- GHSA-p6gq-j5cr-w38fWysokie
W nodemailer v9.0.0 opcja `raw` na poziomie wiadomości omija zabezpieczenia `disableFileAccess` i `disableUrlAccess`, umożliwiając odczyt dowolnych plików oraz pełny atak SSRF (Server-Side Request Forgery) w wysyłanej wiadomości.
- GHSA-wqvq-jvpq-h66fŚrednie
Podatność w Nodemailer pozwala na obejście opcji `disableFileAccess` i `disableUrlAccess` w przypadku korzystania z `jsonTransport`. Mimo że normalny strumień MIME wymusza te ograniczenia, `jsonTransport` serializuje wiadomość w sposób, który je pomija, umożliwiając potencjalny dostęp do lokalnych plików lub zewnętrznych URL-i.
- GHSA-6vj9-mwq6-2f5vŚrednie
Globalna pamięć podręczna DNS w Nodemailer jest kluczowana tylko według `host`, ale każdy wpis przechowuje również specyficzny dla wywołującego `servername` TLS. Gdy dwa bezpośrednie transporty SMTPS używają tego samego hosta DNS z różnymi wartościami `tls.servername`, nazwa serwera z pierwszego transportu jest zwracana do drugiego.
Oryginalny opis (angielski, źródło NVD)
Nodemailer before 10.0.2 fails to properly flatten deeply nested arrays in recipient fields such as to, cc, and bcc, allowing attackers to cause stack exhaustion. Attackers can supply a deeply nested JSON recipient array that triggers recursive Array.toString() conversion, exhausting the call stack and terminating the Node.js process.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

