Skip to main content

Nodemailer EUVDEUVD-2026-87675

| CVE-2026-100702 HIGH
Uncontrolled Recursion (CWE-674)
2026-09-26 VulnCheck GHSA-5hcf-56h7-4fvx
8.2
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Identify app passing untrusted recipients to Nodemailer
  2. Delivery
    Craft deeply nested JSON recipient array
  3. Exploit
    Submit via to/cc/bcc field
  4. Execution
    Trigger recursive Array.toString()
  5. Persist
    Exhaust call stack
  6. Impact
    Crash 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

nodemailer 0 <10.0.2

Affected Packages

npm nodemailer fix: 10.0.2

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

Vendor (VulnCheck) PRIMARY 8.2 HIGH
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
vuln.today AI 5.9 MEDIUM

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.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Red Hat 5.9 MEDIUM

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
High
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Sep 26, 2026 - 14:02 EUVD
CVE Published
Sep 26, 2026 - 13:23 cve.org
HIGH 8.2

DescriptionCVE.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.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 1 npm packages depend on nodemailer (1 direct, 0 indirect)

Ecosystem-wide dependent count for version 10.0.2.

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

Why It Matters

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.

Business Impact: Medium
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 85% exploitable
Prevalence
High
Nodemailer is the de facto email-sending library for Node.js, ~14M+ weekly downloads
Data Quality
8 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment Vendor GitHub VulDB

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
Medium
Technical Impact
Partial

Priority Score

41
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +41
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0
CVE-2020-7769 CRITICAL POC
9.8 Nov 12

This affects the package nodemailer before 6.4.16. Rated critical severity (CVSS 9.8), this vulnerability is remotely ex

CVE-2021-23400 HIGH POC
8.8 Jun 29

The package nodemailer before 6.6.1 are vulnerable to HTTP Header Injection if unsanitized user input that may contain n

CVE-2026-90776 HIGH POC
8.7 Sep 13

Quadratic time complexity in Nodemailer's addressparser component, versions 9.1.0 through 10.0.4, allows remote unauthen

CVE-2025-14874 HIGH POC
7.5 Dec 18

Unbounded recursion in Nodemailer's address parser (npm package versions 3.0.0 through 7.0.10) allows a single crafted e

CVE-2026-82659 HIGH POC
7.1 Aug 31

Sandbox bypass in nodemailer <= 9.0.0 exposes arbitrary file read and full-response SSRF to any authenticated applicatio

CVE-2026-82854 CRITICAL
9.3 Aug 31

SMTP command injection in Nodemailer before 8.0.4 lets attackers smuggle arbitrary SMTP verbs (notably RCPT TO) into out

CVE-2026-100700 HIGH
8.7 Sep 26

Denial of service in Nodemailer versions before 10.0.6 lets remote, unauthenticated attackers stall the Node.js event lo

CVE-2026-82662 HIGH
8.3 Aug 31

TLS certificate verification is disabled by hardcoded `rejectUnauthorized: false` in Nodemailer's internal HTTPS fetch c

CVE-2026-82853 MEDIUM
6.9 Aug 31

SMTP command injection in Nodemailer (npm) versions up to and including 8.0.4 allows an attacker who can influence the t

CVE-2026-100699 MEDIUM
6.9 Sep 26

Remote, unauthenticated attackers can exploit mis-parsing of recipient addresses in Nodemailer versions 9.1.0 through 10

CVE-2026-100701 MEDIUM
6.0 Sep 26

TLS certificate validation bypass in Nodemailer 5.0.0 through 10.0.1 allows an attacker who can prime a process-global D

CVE-2026-82661 MEDIUM
5.3 Aug 31

CRLF injection in Nodemailer's List-* header construction allows any application-level user with control over list comme

Vendor StatusVendor

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy