Skip to main content

Nodemailer CVE-2026-100701

| EUVDEUVD-2026-87674 MEDIUM
Improper Certificate Validation (CWE-295)
2026-09-26 VulnCheck GHSA-2mg4-38wg-2h6f
6.0
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Gain low-priv tenant access on shared Nodemailer service
  2. Delivery
    Prime process-global DNS cache with attacker servername
  3. Exploit
    Victim transport resolves same host, hits poisoned entry
  4. Execution
    Wrong SNI sent, attacker cert accepted despite rejectUnauthorized
  5. Persist
    Victim connects to attacker TLS vhost
  6. Impact
    SMTP credentials disclosed

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V12 - Secure Communication Certificate validation
Exploitation Conditions

Requires all of: two or more direct TLS/SMTPS transports configured with secure:true resolving the SAME non-IP hostname but with DIFFERENT tls.servername values, running in the SAME Node.js process so they share the process-global DNS cache; and an attacker positioned to prime that cache first (typically a co-tenant in a multi-tenant service or an SNI-routed SMTP gateway). Limiting factors: exploitation is a timing/ordering race (AC:H, AT:P) requiring the attacker's resolution to win the cache, low-privilege foothold on the shared service (PR:L), and the deployment must actually multiplex distinct servernames over one shared cache - single-tenant or IP-host or per-process-isolated deployments are not affected. Notably, rejectUnauthorized:true does NOT mitigate this because the wrong-but-valid certificate is accepted.

Impact

This is a genuine but conditional confidentiality issue, not a broad emergency. The vendor CVSS 4.0 vector (AV:N/AC:H/AT:P/PR:L/UI:N/VC:H) correctly signals the tension: network-reachable but with HIGH attack complexity and a Present attack requirement (AT:P), plus low privileges required. That combination - cache-priming race against a shared process-global DNS cache in a multi-tenant deployment - is why the score lands at 6.0 (MEDIUM) despite a HIGH confidentiality impact (SMTP credential disclosure). No EPSS score, no CISA KEV listing, and no public exploit are present in the input, so exploitation status is 'no public exploit identified at time of analysis.' The realistic risk is targeted and situational rather than opportunistic mass exploitation: an attacker must be a co-resident tenant or otherwise able to influence the shared cache on an SNI-routed SMTP gateway. There is no version/vector conflict to flag - the CVSS 4.0 vector, the EUVD affected range (5.0.0 <10.0.2), and the description are mutually consistent. The tag 'Authentication Bypass' is a loose fit; the underlying weakness is CWE-295 improper certificate validation (TLS servername/SNI confusion) leading to credential disclosure, which is better characterized as a cert-validation/MITM issue than an auth bypass.

Exploit ScenarioDerived

In a multi-tenant Node.js service that shares one Nodemailer process across tenants, an attacker-controlled transport first resolves a target SMTP host to seed the process-global DNS cache with the attacker's tls.servername. When a victim tenant's direct TLS/SMTPS transport then resolves the same host, it receives the poisoned cache entry, sends the wrong SNI, and validates the attacker's TLS virtual host certificate as valid - even with rejectUnauthorized: true - causing the victim to connect to the attacker and leak its SMTP credentials. No public exploit is identified at time of analysis.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.1% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Sep 26, 2026

TLS certificate validation bypass in Nodemailer 5.0.0 through 10.0.1 allows an attacker who can prime a process-global DNS cache to make a victim direct-TLS/SMTPS transport connect to the attacker's SNI virtual host and accept the attacker's certificate, even with rejectUnauthorized: true, potentially disclosing SMTP credentials. Exploitation is conditional: it requires two or more secure:true transports resolving the same non-IP hostname with different tls.servername values in the same Node.js process, plus a low-privileged attacker capable of winning a cache-priming race (assessed CVSS 3.1 AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:L/A:N). No public exploit code or confirmed active exploitation was identified at time of analysis; the vendor fixed the cache-key confusion in Nodemailer 10.0.2.

RemediationAI

Upgrade to Nodemailer 10.0.2; the vendor-released patch fixes the cache-key confusion by ensuring that caller-specific TLS servername data is not overwritten on a host-only cache hit. The official advisory is https://github.com/nodemailer/nodemailer/security/advisories/GHSA-6vj9-mwq6-2f5v. Until upgrading, the most effective compensating control is to eliminate the shared process-global DNS cache condition: run each multi-tenant SMTP transport or each distinct tls.servername identity in a separate Node.js process/container so that cache entries are not shared, though this increases operational and resource overhead. Alternatively, avoid configuring two secure:true transports in the same process that resolve the same non-IP hostname with different tls.servername values; assign unique hostnames or use IP-host targets where possible, at the cost of losing some SNI-based routing flexibility. Because rejectUnauthorized: true does not mitigate the issue, certificate pinning or out-of-band validation of the expected peer identity can add defense in depth but is not a substitute for the patch. Finally, restrict the low-privilege foothold (PR:L) that an attacker needs to prime the cache first, and do not assume that a single-tenant or IP-host deployment is vulnerable, as those configurations are not affected.

Affected VersionsENISA

nodemailer 5.0.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 Node.js email-sending library used for SMTP and SMTPS transport. The flaw is a process-global DNS cache whose key is only the DNS host, but each cached entry also stores caller-specific TLS servername data. When two direct TLS/SMTPS transports (secure: true) resolve the same non-IP hostname with different tls.servername values, a cache hit returns the first transport's servername and overwrites the second transport's explicitly configured value. As a result, Nodemailer sends the wrong SNI value and validates the peer certificate against the wrong identity. This is catalogued as CWE-295 (Improper Certificate Validation): the certificate is valid, but for the attacker's virtual host rather than the intended one, so rejectUnauthorized: true does not protect against the confusion. The assessed CVSS:4.0 vector and independent CVSS:3.1 assessment both reflect network reachability, high attack complexity due to the timing/ordering race (AT:P, AC:H), low privileges required (PR:L), and a confidentiality-high, integrity-low impact. Affected deployments are those that multiplex distinct servernames over one shared cache, typically multi-tenant services or SNI-routed SMTP gateways; single-tenant deployments, IP-host targets, and per-process-isolated instances are not affected.

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

AC:H for the cache-priming race and shared-process/differing-servername prerequisites; PR:L for the required tenant foothold; C:H for SMTP credential disclosure; I:L for misdirected connection, A:N.

3.1 AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:L/A:N
4.0 AV:N/AC:H/AT:P/PR:L/UI:N/VC:H/VI:L/VA:N/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
Low
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
Low
Vulnerable system: Availability
None
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
MEDIUM 6.0

DescriptionCVE.org

Nodemailer versions 5.0.0 through 10.0.1 use a process-global DNS cache that is keyed only by the DNS host, while each cache entry also stores the caller-specific TLS servername. When two direct TLS/SMTPS transports (secure: true) resolve the same non-IP host with different tls.servername values, the first transport's servername is returned on the cache hit and overwrites the second transport's explicitly configured value, so Nodemailer sends the wrong SNI value and validates the peer certificate against the wrong identity. In multi-tenant services or SNI-routed SMTP gateways, an attacker who can prime the cache can cause a victim transport to connect to the attacker's TLS virtual host and accept the attacker's certificate even with rejectUnauthorized: true, disclosing the victim's SMTP credentials. Fixed in 10.0.2.

Threat Intelligence Overview

EPSS Score
0.1%
Top 99% exploitable
Prevalence
High
Nodemailer is the dominant Node.js email-sending library, extremely widely deployed
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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.1%
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
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

30
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +30
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-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