Strona główna / Blog / Nodemailer: zagnieżdżeni adresaci → DoS

Blog · analiza

Nodemailer CVE-2026-100702: zagnieżdżeni adresaci i stack exhaustion

CVE-2026-100702 dotyczy rekursywnego przetwarzania struktur adresatów. Głęboko zagnieżdżona tablica może doprowadzić do wyczerpania stosu i przerwania procesu Node.js. Kluczowy warunek nie brzmi „masz Nodemailer”, lecz „niezaufany użytkownik wpływa na strukturę przekazywaną do biblioteki, nie tylko na string adresu”.

CVE-2026-100702 (Nodemailer): untrusted recipient structure → deeply nested arrays → recursive traversal → call stack exhaustion → crash procesu (DoS).
Warunek exploitable: attacker-controlled JSON mapowany bez limitu na to/cc/bcc — nodemailer present=true tego nie przesądza.

Attack path

untrusted recipient structure -> deeply nested arrays -> recursive traversal -> call stack exhaustion -> process crash / availability impact

Dlaczego scanner może źle priorytetyzować

Dwie aplikacje z tą samą wersją mogą mieć zupełnie inne ryzyko — zależnie od tego, czy attacker-controlled JSON trafia bez limitu do pól adresowych. To ta sama rodzina „input shape jako warunek” co inne DoS zależne od struktury (por. Nodemailer ReDoS, Excelize).

Compensating controls i verification

Przed biblioteką można: spłaszczać strukturę, odrzucać zagnieżdżone tablice, limitować liczbę odbiorców i rozmiar requestu oraz rozdzielić worker wysyłkowy od procesu obsługującego ruch. Po poprawce testuj z rosnącą głębokością danych i mierz: czy input jest odrzucany, zużycie stack/CPU, czy proces pozostaje dostępny i czy błąd jednego zadania nie ubija całego workera.

Powiązane na blogu

Źródło

  • Nodemailer — Security advisories (CVE-2026-100702) — github.com

Nota redakcyjna: stan informacji 29 września 2026. CVE-2026-100702 (Nodemailer, stack exhaustion przez zagnieżdżone struktury adresatów). Ekspozycja zależy od tego, czy niezaufany input steruje strukturą adresatów. Brak potwierdzenia active exploitation.

Zapamiętaj jedno

Exploitability może zależeć od kształtu danych, nie tylko od ich wartości — to argument za runtime-aware VEX i testami granic parsera. nodemailer present nie mówi, czy attacker-controlled JSON steruje polami adresowymi bez limitu.