Skip to main content

Nodemailer CVE-2026-82660

| EUVDEUVD-2026-68438 MEDIUM
Missing Authorization (CWE-862)
2026-08-31 VulnCheck GHSA-28mw-fm9r-fxjg
5.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Authenticate to application
  2. Delivery
    Submit crafted message content with malicious path or href value
  3. Exploit
    Application invokes jsonTransport sendMail()
  4. Execution
    mail.normalize() calls shared.resolveContent() without access-control flags
  5. Persist
    resolveContent() reads local file or fetches internal URL
  6. Impact
    Sensitive content embedded in JSON output is returned or logged

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires three concurrent conditions: (1) the application must use createTransport({ jsonTransport: true }) - applications using SMTP, SES, or other transports are not affected by this code path; (2) the application must set disableFileAccess and/or disableUrlAccess as an intended security control - applications that never set those flags have no broken security boundary to exploit; and (3) the attacker must be able to supply or influence message content fields processed by normalize(), including attachment path, html.href, text.href, watchHtml, amp, icalEvent content, or alternatives entries. The CVSS 4.0 PR:L metric confirms that some authenticated or authorized access to the application is required before content can be injected - unauthenticated remote exploitation of default configurations is not supported by the available data. The secondary path via attachDataUrls requires that option to also be enabled. What limits exploitation: non-default transport selection (jsonTransport), deliberate use of the now-ineffective access-control flags, and at least low-level application access.

Impact

The CVSS 4.0 score of 5.3 (Medium) with AV:N/AC:L/AT:N/PR:L/UI:N reflects a network-exploitable flaw gated behind low privileges - meaning the attacker must already be able to supply or influence Nodemailer message content fields such as attachment path, html.href, or text.href. In practice this is easily satisfied in multi-tenant SaaS platforms, queue-based email pipelines, or any application that accepts user-influenced email content destined for jsonTransport serialization. The VC:L/VI:L impact ratings indicate limited per-exploitation impact: file reads are bounded by the Node.js process's filesystem permissions, and URL fetches produce outbound requests rather than direct return of arbitrary data. However, chained with SSRF against cloud metadata endpoints or internal services, or used to leak sensitive configuration files containing credentials or API keys, real-world impact can materially exceed what the CVSS base score alone implies. No EPSS data was provided in the source input, so probabilistic exploitation likelihood cannot be independently quantified. The CVE is not in CISA KEV and no public exploit code is referenced in the provided sources, suggesting no confirmed active exploitation at time of analysis. Risk is most acute for applications that explicitly set disableFileAccess or disableUrlAccess believing those flags create a security boundary - those deployments are misconfigured in a silent and non-obvious way.

Exploit ScenarioDerived

An attacker with access to a multi-tenant application's email composition API submits a crafted payload setting an attachment path to a sensitive local file such as /proc/self/environ or a cloud credential file, or sets text.href to an internal AWS metadata endpoint. When the backend calls sendMail() using jsonTransport to serialize the message for a queue, shared.resolveContent() reads the file or fetches the URL without checking disableFileAccess or disableUrlAccess, and the resulting JSON output - returned to the attacker or logged - contains the retrieved content. No public exploit code has been identified, but the vulnerability mechanics and source-to-sink evidence are fully detailed in GHSA-wqvq-jvpq-h66f, making independent reproduction straightforward.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.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

AnalysisAI

Nodemailer's jsonTransport transport fails to enforce disableFileAccess and disableUrlAccess controls during message normalization in all versions prior to 8.0.9, allowing attackers with control over message content fields to read local filesystem content or trigger outbound SSRF-style HTTP requests. Applications that use jsonTransport as a safe serializer or queue payload generator while trusting those access-control options as a security boundary are the primary affected population. No public exploit code has been identified and the CVE is not in CISA KEV, but the flaw's mechanics are straightforward and fully documented in the GHSA advisory.

RemediationAI

Vendor-released patch: 8.0.9. Upgrade the Nodemailer npm package to version 8.0.9 or later using npm install nodemailer@8.0.9 or the equivalent in your package manager; this is confirmed by GitHub Security Advisory GHSA-wqvq-jvpq-h66f (https://github.com/nodemailer/nodemailer/security/advisories/GHSA-wqvq-jvpq-h66f). For deployments that cannot immediately upgrade, a practical compensating control is to validate and reject message content fields - specifically attachment path, text.href, html.href, icalEvent content references, and alternatives - before passing them to Nodemailer, preventing attacker-controlled values from reaching resolveContent(); this adds application-layer input filtering but increases code complexity. A secondary mitigation is to run the Node.js process under a minimal-privilege OS user with a restricted filesystem view (e.g., containerization with read-only mounts or a chroot-equivalent), which limits the blast radius of any file read even if the vulnerability is triggered but does not prevent outbound SSRF requests. Neither workaround fully substitutes for patching, and the secondary attachDataUrls bypass path means surface area may exceed what a targeted workaround covers.

Affected VersionsENISA

nodemailer 0 <8.0.9

Affected Packages

npm nodemailer fix: 8.0.9

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 deployed Node.js email library distributed via npm (CPE: cpe:2.3:a:nodemailer:nodemailer:*:*:*:*:*:*:*:*). The vulnerability is rooted in CWE-862 (Missing Authorization): the disableFileAccess and disableUrlAccess flags are correctly enforced in the normal MIME streaming path inside MimeNode._getStream(), but the jsonTransport code path in lib/json-transport/index.js serializes messages by calling mail.normalize(), which chains to resolveAll() and ultimately to shared.resolveContent() in lib/shared/index.js. At lines 540-541, resolveContent() fetches HTTP(S) content via nmfetch(); at lines 549-550 it reads local files with fs.createReadStream(). Neither operation receives or consults the access-control flags, which are stored in mail.data but never passed into this code path. A secondary reachable path exists via the attachDataUrls option, which causes _convertDataImages() to call mail.resolveContent() with the same missing enforcement. The fix landed in version 8.0.9 per GHSA-wqvq-jvpq-h66f.

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 5.3 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N
vuln.today AI 5.4 MEDIUM

Network-reachable via user-controlled content fields; low privileges required to inject malicious paths; confidentiality and integrity impacts are limited and bounded by process permissions.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

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

Lifecycle Timeline

2
CVE Published
Aug 31, 2026 - 10:50 cve.org
MEDIUM 5.3
Patch available
Aug 31, 2026 - 10:16 EUVD

DescriptionCVE.org

Nodemailer before 8.0.9 fails to enforce disableFileAccess and disableUrlAccess options during message normalization in jsonTransport. Attackers can read local files or fetch URLs by supplying path or href values in message content fields, bypassing intended access controls.

Threat Intelligence Overview

EPSS Score
0.2%
Top 91% exploitable
Prevalence
High
one of npm's most downloaded Node.js email libraries
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment Vendor GitHub

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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
High
Technical Impact
Partial

Priority Score

26
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +26
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

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-100702 HIGH
8.2 Sep 26

Stack exhaustion in Nodemailer before 10.0.2 allows unauthenticated remote attackers to crash an affected Node.js proces

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

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Not-Affected
SUSE Linux Enterprise High Performance Computing 12 Not-Affected
SUSE Linux Enterprise Micro 5.3 Affected
SUSE Linux Enterprise Micro 5.4 Affected
SUSE Linux Enterprise Micro 5.5 Not-Affected

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