Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify app passing untrusted recipients to Nodemailer
-
DeliveryCraft deeply nested JSON recipient array
-
ExploitSubmit via to/cc/bcc field
-
ExecutionTrigger recursive Array.toString()
-
PersistExhaust call stack
-
ImpactCrash Node.js process (DoS)
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Recursion depth limits
|
| Exploitation Conditions | Requires an application built on Nodemailer that accepts externally-controlled recipient input (to, cc, or bcc) and passes it into message options without validating or bounding array nesting depth. The malicious input must be a deeply nested JSON recipient array to force recursive Array.toString() flattening into stack exhaustion. Limiting factors: the vulnerability is not exploitable against Nodemailer in isolation - it depends on the host application exposing recipient fields to untrusted input; the CVSS AC:H/AT:P reflects that a sufficiently deep nested structure and a receptive code path are both required. Impact is limited to crashing the Node.js process (recoverable DoS) with no data exposure or code execution. |
| Impact | This is a genuine but bounded denial-of-service issue, not a high-impact compromise. The CVSS 4.0 vector (AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H) correctly scopes impact to availability only - no confidentiality or integrity loss - so the vendor's 8.2 score is inflated by the network-reachable/unauthenticated framing while the true effect is a single Node.js process crash. AC:H and AT:P are notable: exploitation is not trivial, requiring a specifically deep-nested recipient structure and an application that actually forwards attacker-controlled input into recipient fields. There is NO CISA KEV listing, NO EPSS score provided, and NO public exploit code identified, so exploitation is theoretical at time of analysis. Note the input Tags label this 'Information Disclosure,' which conflicts with both the CWE-674 (uncontrolled recursion) classification and the CVSS impact metrics (VC:N/VI:N/VA:H) - this is an availability/DoS flaw, not information disclosure. Real-world priority is moderate-to-low: the affected library is extremely widely deployed, but the impact is a recoverable crash and exploitation is conditional on application design. |
| Exploit ScenarioDerived | An application uses Nodemailer to send email and accepts recipient addresses (to/cc/bcc) from an untrusted source such as a web form or API that passes JSON directly into the message options. An attacker submits a deeply nested JSON array in a recipient field; when Nodemailer performs recursive Array.toString() flattening, the call stack is exhausted and the Node.js process terminates. No public exploit code is identified, and the deep-nesting requirement plus dependence on the app forwarding raw input reflect the CVSS AC:H/AT:P complexity. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 26, 2026
Stack exhaustion in Nodemailer before 10.0.2 allows unauthenticated remote attackers to crash an affected Node.js process by supplying a deeply nested JSON array in a recipient field (to, cc, or bcc) that the library flattens recursively until the call stack is exhausted. The flaw is only reachable through a host application that accepts externally controlled recipient input and passes it into Nodemailer message options without validating or bounding array nesting depth, so real-world impact is a recoverable denial of service with no data exposure or code execution. No KEV listing, EPSS signal, or public exploit code was identified at time of analysis, and the vendor has released a patched version (10.0.2); the issue is tracked as EUVD-2026-87675 and GHSA-8vvx-rff5-p5rq.
RemediationAI
Vendor-released patch: upgrade Nodemailer to 10.0.2 or later, as documented in the advisory at https://github.com/nodemailer/nodemailer/security/advisories/GHSA-8vvx-rff5-p5rq and the VulnCheck advisory at https://www.vulncheck.com/advisories/nodemailer-before-10.0.2-stack-exhaustion-via-nested-recipient-arrays. Because the vulnerability depends on the host application, patching the library alone does not remove exposure if custom code still forwards arbitrary recipient structures; organizations that cannot upgrade immediately should, in order of effectiveness: enforce a strict input schema on the to, cc, and bcc fields that accepts only strings or flat arrays of strings and rejects nested arrays outright (trade-off: legitimate callers that rely on nested arrays for recipient grouping must be refactored); normalize and depth-limit recipient arrays immediately before they are handed to Nodemailer with an explicit maximum nesting depth of one (trade-off: silently flattening data can mask other injection attempts, so log rejections); cap HTTP request body size and JSON nesting depth at the reverse proxy or API gateway in front of the mail-sending endpoint (trade-off: overly tight body limits can block legitimate attachment or bulk-recipient submissions if they share the same route); and run mail composition in worker threads or a supervised child process with automatic restart to contain a crash to the mail subsystem rather than the main process (trade-off: added latency, memory, and operational complexity). Note that wrapping the send call in try/catch is not a reliable mitigation, since V8 stack exhaustion generally terminates the process before an error handler can run, and no vendor workaround short of upgrading fully bounds the recursion.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in npm
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Nodemailer is a widely used Node.js library for composing and sending email over SMTP, and it is embedded in many frameworks and application back ends (contact forms, notification services, transactional mailers). Its message options accept recipient fields (to, cc, bcc) as either delimited strings or arrays, and the library historically tolerates nested arrays so callers can concatenate recipient groups; that flattening is implemented with recursive Array.toString()/recursive traversal, which is the root cause class CWE-674 (Uncontrolled Recursion). Because no depth bound is enforced, a deeply nested JSON array pulled from an untrusted request body drives recursion proportional to nesting depth until V8's maximum call stack size is exceeded, throwing a stack-overflow error that in practice terminates the process rather than being cleanly handled. The CPE cpe:2.3:a:nodemailer:nodemailer:*:*:*:*:*:*:*:* marks the entire library as potentially affected with no version constraint, consistent with EUVD's range of nodemailer 0 through 10.0.2. The assessed CVSS:3.1 vector AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H and the supplied CVSS:4.0 vector (AC:H/AT:P, PR:N, UI:N, VA:H) both indicate the attack is network-delivered and requires no authentication or user interaction, but that exploitation is conditional: a sufficiently deep nested structure and a host code path that forwards untrusted recipient data are both required, which is why the complexity metric is High and the only measured impact is availability.
Know when Nodemailer gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Network-reachable and unauthenticated at the library boundary but AC:H because a deeply nested payload and a receptive app code path are needed; impact is availability-only process crash.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
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.
Technical POC Analysis
CWE-674 (Uncontrolled Recursion), with CWE-248 (Uncaught Exception) as the secondary weakness that turns it into process loss.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Nodemailer versions before 10.0.2 contain a stack exhaustion flaw that can crash Node.js processes when applications pass overly nested recipient arrays into email messages, creating a recoverable denial-of-service risk for services that accept external recipient input. Leadership should care because customer-facing email or notification workflows may become unavailable, though there is no data exposure or code execution, and no public exploit identified at time of analysis; the vendor-released patch is 10.0.2.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
More in Nodemailer
View allThis affects the package nodemailer before 6.4.16. Rated critical severity (CVSS 9.8), this vulnerability is remotely ex
The package nodemailer before 6.6.1 are vulnerable to HTTP Header Injection if unsanitized user input that may contain n
Quadratic time complexity in Nodemailer's addressparser component, versions 9.1.0 through 10.0.4, allows remote unauthen
Unbounded recursion in Nodemailer's address parser (npm package versions 3.0.0 through 7.0.10) allows a single crafted e
Sandbox bypass in nodemailer <= 9.0.0 exposes arbitrary file read and full-response SSRF to any authenticated applicatio
SMTP command injection in Nodemailer before 8.0.4 lets attackers smuggle arbitrary SMTP verbs (notably RCPT TO) into out
Denial of service in Nodemailer versions before 10.0.6 lets remote, unauthenticated attackers stall the Node.js event lo
TLS certificate verification is disabled by hardcoded `rejectUnauthorized: false` in Nodemailer's internal HTTPS fetch c
SMTP command injection in Nodemailer (npm) versions up to and including 8.0.4 allows an attacker who can influence the t
Remote, unauthenticated attackers can exploit mis-parsing of recipient addresses in Nodemailer versions 9.1.0 through 10
TLS certificate validation bypass in Nodemailer 5.0.0 through 10.0.1 allows an attacker who can prime a process-global D
CRLF injection in Nodemailer's List-* header construction allows any application-level user with control over list comme
EUVD-2026-87675
GHSA-5hcf-56h7-4fvx
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB