CVE-2026-100701
Nodemailer 5.0.0 through 10.0.1 TLS servername Cache Confusion
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.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- High
- Privileges needed
- Low
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- Low
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
6.0
Nodemailer 5.0.0 through 10.0.1 TLS servername Cache Confusion
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.
- Record
CVE-2026-100701- CVSS 4.0
- 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 - CVSS 3.1
- 5.9 Medium
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:L/A:N - Weakness
- CWE-295
- Updated
- 2026-11-02
EUVDEUVD-2026-87674
6.0
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.
- Record
EUVD-2026-87674- CVSS 4.0
- 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 - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-2mg4-38wg-2h6f
6.0
Nodemailer versions 5.0.0 through 10.0.1 use a process-global DNS cache that is keyed only by the...
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.
- Record
GHSA-2mg4-38wg-2h6f- CVSS 4.0
- 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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - CVSS 3.1
- 5.9 Medium
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:L/A:N - Weakness
- CWE-295
- Updated
- 2026-11-02
GitHub AdvisoriesGHSA-6vj9-mwq6-2f5v
5.9
Nodemailer: Process-global DNS cache reuses TLS `servername` across transports, enabling cross-tenant SMTP credential disclosure
Summary
Nodemailer's process-global DNS cache is keyed only by host, but each cache entry also stores the caller-specific TLS servername. When two direct SMTPS transports use the same DNS host with different tls.servername values, the first transport's server name is returned to the second transport and overwrites its explicitly configured value.
As a result, Nodemailer sends the wrong SNI value and verifies the peer certificate against the wrong identity. In a multi-tenant service or SNI-routed SMTP gateway, one tenant can prime the cache so that a victim transport connects to the attacker's TLS virtual host, accepts the attacker's certificate with rejectUnauthorized: true, and sends the victim's SMTP credentials to it.
Affected component
- Ecosystem: npm
- Package:
nodemailer - Repository: https://github.com/nodemailer/nodemailer
- Tested version:
10.0.1 - Tested commit:
40d52215aac65b811d7e131bc916f68605efd9d2 - Runtime-confirmed vulnerable versions:
5.0.0and10.0.1 - Affected versions:
>= 5.0.0, <= 10.0.1 - Patched versions: None known at the time of this report
- Affected mode: Direct TLS/SMTPS connections (
secure: true) where different transports use the same non-IPhostand different TLSservernamevalues
The vulnerable cache implementation was introduced in commit 6859b5dd96c8d9f0070a3169a877181b71df4a3b on 2018-12-28. Git history shows v5.0.0 as the first release tag containing that commit. The behavior remains present in v10.0.1.
Details
Root cause
src/shared/index.ts defines one module-global DNS cache, keyed only by the DNS host:
export const dnsCache = new Map<string, DnsCacheEntry>();
Although the cache key contains only host, the cached value contains both DNS addresses and the request-specific TLS identity:
const value: DnsCacheValue = {
addresses: allAddresses,
servername: options.servername || host
};
dnsCache.set(host, {
value,
expires: Date.now() + (options.dnsTtl || DNS_TTL)
});
On a cache hit, resolveHostname() returns the cached servername without considering the current call's options.servername:
if (!cached.expires || cached.expires >= now) {
return callback(
null,
formatDNSValue(cached.value, {
cached: true
})
);
}
formatDNSValue() copies that stale value into the result:
return Object.assign(
{
servername: value.servername,
host,
_addresses: addresses
},
extra || {}
);
For a direct TLS connection, SMTPConnection.connect() initially copies the current transport's TLS configuration into opts. _resolveAndConnect() then overwrites every truthy field with the cached resolver result, including opts.servername:
Object.assign(opts, this.options.tls || {});
if (this.servername && !opts.servername) {
opts.servername = this.servername;
}
return this._resolveAndConnect(opts, resolved => {
this._connectToHost(opts, this.secureConnection);
});
for (const key of Object.keys(resolved!)) {
if (key.charAt(0) !== '_' && (resolved as { [key: string]: any })[key]) {
(opts as { [key: string]: any })[key] = (resolved as { [key: string]: any })[key];
}
}
The resulting opts object is passed to tls.connect(). Node therefore sends the cached server name as SNI and verifies the certificate against that cached name, rather than against the server name explicitly configured for the current transport.
The default DNS cache TTL is five minutes:
const DNS_TTL = 5 * 60 * 1000;
Code path
Tenant A: createTransport({ host: H, secure: true,
tls: { servername: attackerName } })
-> SMTPConnection.connect()
-> _resolveAndConnect(opts)
-> shared.resolveHostname({ host: H, servername: attackerName })
-> dnsCache.set(H, { addresses, servername: attackerName })
Victim:…
- Record
GHSA-6vj9-mwq6-2f5v- CVSS 3.1
- 5.9 Medium
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:L/A:N - Weakness
- CWE-295
- Updated
- 2026-11-02
NVD
6.0
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.
- Record
CVE-2026-100701- CVSS 4.0
- 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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - CVSS 3.1
- 5.9 Medium
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:L/A:N - Weakness
- CWE-295
- Updated
- 2026-11-02
OSV
6.0
Nodemailer 5.0.0 through 10.0.1 TLS servername Cache Confusion
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.
- Record
CVE-2026-100701- CVSS 4.0
- 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 - Weakness
- CWE-295
- Updated
- 2026-11-02
Show 11 moreShow less
OSVDEBIAN-CVE-2026-100701
6.0
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.
- Record
DEBIAN-CVE-2026-100701- CVSS 4.0
- 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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - Updated
- 2026-11-02
OSVGHSA-6vj9-mwq6-2f5v
5.9
Nodemailer: Process-global DNS cache reuses TLS `servername` across transports, enabling cross-tenant SMTP credential disclosure
Summary
Nodemailer's process-global DNS cache is keyed only by host, but each cache entry also stores the caller-specific TLS servername. When two direct SMTPS transports use the same DNS host with different tls.servername values, the first transport's server name is returned to the second transport and overwrites its explicitly configured value.
As a result, Nodemailer sends the wrong SNI value and verifies the peer certificate against the wrong identity. In a multi-tenant service or SNI-routed SMTP gateway, one tenant can prime the cache so that a victim transport connects to the attacker's TLS virtual host, accepts the attacker's certificate with rejectUnauthorized: true, and sends the victim's SMTP credentials to it.
Affected component
- Ecosystem: npm
- Package:
nodemailer - Repository: https://github.com/nodemailer/nodemailer
- Tested version:
10.0.1 - Tested commit:
40d52215aac65b811d7e131bc916f68605efd9d2 - Runtime-confirmed vulnerable versions:
5.0.0and10.0.1 - Affected versions:
>= 5.0.0, <= 10.0.1 - Patched versions: None known at the time of this report
- Affected mode: Direct TLS/SMTPS connections (
secure: true) where different transports use the same non-IPhostand different TLSservernamevalues
The vulnerable cache implementation was introduced in commit 6859b5dd96c8d9f0070a3169a877181b71df4a3b on 2018-12-28. Git history shows v5.0.0 as the first release tag containing that commit. The behavior remains present in v10.0.1.
Details
Root cause
src/shared/index.ts defines one module-global DNS cache, keyed only by the DNS host:
export const dnsCache = new Map<string, DnsCacheEntry>();
Although the cache key contains only host, the cached value contains both DNS addresses and the request-specific TLS identity:
const value: DnsCacheValue = {
addresses: allAddresses,
servername: options.servername || host
};
dnsCache.set(host, {
value,
expires: Date.now() + (options.dnsTtl || DNS_TTL)
});
On a cache hit, resolveHostname() returns the cached servername without considering the current call's options.servername:
if (!cached.expires || cached.expires >= now) {
return callback(
null,
formatDNSValue(cached.value, {
cached: true
})
);
}
formatDNSValue() copies that stale value into the result:
return Object.assign(
{
servername: value.servername,
host,
_addresses: addresses
},
extra || {}
);
For a direct TLS connection, SMTPConnection.connect() initially copies the current transport's TLS configuration into opts. _resolveAndConnect() then overwrites every truthy field with the cached resolver result, including opts.servername:
Object.assign(opts, this.options.tls || {});
if (this.servername && !opts.servername) {
opts.servername = this.servername;
}
return this._resolveAndConnect(opts, resolved => {
this._connectToHost(opts, this.secureConnection);
});
for (const key of Object.keys(resolved!)) {
if (key.charAt(0) !== '_' && (resolved as { [key: string]: any })[key]) {
(opts as { [key: string]: any })[key] = (resolved as { [key: string]: any })[key];
}
}
The resulting opts object is passed to tls.connect(). Node therefore sends the cached server name as SNI and verifies the certificate against that cached name, rather than against the server name explicitly configured for the current transport.
The default DNS cache TTL is five minutes:
const DNS_TTL = 5 * 60 * 1000;
Code path
Tenant A: createTransport({ host: H, secure: true,
tls: { servername: attackerName } })
-> SMTPConnection.connect()
-> _resolveAndConnect(opts)
-> shared.resolveHostname({ host: H, servername: attackerName })
-> dnsCache.set(H, { addresses, servername: attackerName })
Victim:…
- Record
GHSA-6vj9-mwq6-2f5v- CVSS 3.1
- 5.9 Medium
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:L/A:N - Weakness
- CWE-295
- Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-100701
6.0
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.
- Record
UBUNTU-CVE-2026-100701- CVSS 4.0
- 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 - CVSS 3.1
- 5.9 Medium
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:L/A:N - Updated
- 2026-11-02
OSVCLSA-2026-1790673224 No score
TuxCare security update for nodemailer (1 CVE)
TuxCare rebuilt nodemailer to address 1 CVE. Fixed in 9.1.0-tuxcare.2.
- Record
CLSA-2026-1790673224- Updated
- 2026-11-02
OSVCLSA-2026-1790676821 No score
TuxCare security update for nodemailer (1 CVE)
TuxCare rebuilt nodemailer to address 1 CVE. Fixed in 6.10.1-tuxcare.11.
- Record
CLSA-2026-1790676821- Updated
- 2026-11-02
OSVCLSA-2026-1792115492 No score
TuxCare security update for nodemailer (2 CVEs)
TuxCare rebuilt nodemailer to address 2 CVEs. Fixed in 9.0.3-tuxcare.3.
- Record
CLSA-2026-1792115492- Updated
- 2026-11-02
OSVCLSA-2026-1792115522 No score
TuxCare security update for nodemailer (2 CVEs)
TuxCare rebuilt nodemailer to address 2 CVEs. Fixed in 9.0.2-tuxcare.3.
- Record
CLSA-2026-1792115522- Updated
- 2026-11-02
OSVCLSA-2026-1792139110 No score
TuxCare security update for nodemailer (2 CVEs)
TuxCare rebuilt nodemailer to address 2 CVEs. Fixed in 9.0.5-tuxcare.3.
- Record
CLSA-2026-1792139110- Updated
- 2026-11-02
OSVCLSA-2026-1792139197 No score
TuxCare security update for nodemailer (1 CVE)
TuxCare rebuilt nodemailer to address 1 CVE. Fixed in 9.0.6-tuxcare.2.
- Record
CLSA-2026-1792139197- Updated
- 2026-11-02
OSVCLSA-2026-1792429268 No score
TuxCare security update for nodemailer (1 CVE)
TuxCare rebuilt nodemailer to address 1 CVE. Fixed in 9.0.1-tuxcare.3.
- Record
CLSA-2026-1792429268- Updated
- 2026-11-02
OSVCLSA-2026-1792429360 No score
TuxCare security update for nodemailer (2 CVEs)
TuxCare rebuilt nodemailer to address 2 CVEs. Fixed in 9.0.0-tuxcare.4.
- Record
CLSA-2026-1792429360- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
nodemailernpm |
5.0.0 up to 10.0.2 | 10.0.2 |
nodemailerTuxCare:npm |
9.1.0-tuxcare.0 up to 9.1.0-tuxcare.2, plus listed versions 9.1.09.1.0-tuxcare.1 |
9.1.0-tuxcare.2 |
nodemailerTuxCare:npm |
6.10.1-tuxcare.0 up to 6.10.1-tuxcare.11, plus listed versions 6.10.16.10.1-tuxcare.16.10.1-tuxcare.106.10.1-tuxcare.26.10.1-tuxcare.3 Show 6 moreShow less6.10.1-tuxcare.46.10.1-tuxcare.56.10.1-tuxcare.66.10.1-tuxcare.76.10.1-tuxcare.86.10.1-tuxcare.9 |
6.10.1-tuxcare.11 |
nodemailerTuxCare:npm From an advisory covering 2 CVEs |
9.0.3-tuxcare.0 up to 9.0.3-tuxcare.3, plus listed versions 9.0.39.0.3-tuxcare.19.0.3-tuxcare.2 |
9.0.3-tuxcare.3 |
nodemailerTuxCare:npm From an advisory covering 2 CVEs |
9.0.2-tuxcare.0 up to 9.0.2-tuxcare.3, plus listed versions 9.0.29.0.2-tuxcare.19.0.2-tuxcare.2 |
9.0.2-tuxcare.3 |
nodemailerTuxCare:npm From an advisory covering 2 CVEs |
9.0.5-tuxcare.0 up to 9.0.5-tuxcare.3, plus listed versions 9.0.59.0.5-tuxcare.19.0.5-tuxcare.2 |
9.0.5-tuxcare.3 |
nodemailerTuxCare:npm |
9.0.6-tuxcare.0 up to 9.0.6-tuxcare.2, plus listed versions 9.0.69.0.6-tuxcare.1 |
9.0.6-tuxcare.2 |
nodemailerTuxCare:npm |
9.0.1-tuxcare.0 up to 9.0.1-tuxcare.3, plus listed versions 9.0.19.0.1-tuxcare.19.0.1-tuxcare.2 |
9.0.1-tuxcare.3 |
nodemailerTuxCare:npm From an advisory covering 2 CVEs |
9.0.0-tuxcare.0 up to 9.0.0-tuxcare.4, plus listed versions 9.0.09.0.0-tuxcare.19.0.0-tuxcare.29.0.0-tuxcare.3 |
9.0.0-tuxcare.4 |
node-nodemailerDebian:12 |
All versions, plus listed versions 10.0.0+~8.0.1-110.0.10+~8.0.1-110.0.10+~8.0.2-16.10.0+~6.4.17-16.8.0+~6.4.6-1 Show 22 moreShow less6.9.13+~6.4.14-16.9.15+~6.4.16-16.9.16+~6.4.16-16.9.4+~6.4.9-16.9.4+~6.4.9-26.9.4+~6.4.9-36.9.4+~6.4.9-47.0.10+~7.0.2-17.0.12+~7.0.5-17.0.5+~7.0.1-17.0.6+~7.0.1-17.0.9+~7.0.2-17.0.9+~7.0.2-28.0.11+~8.0.1-18.0.2+~7.0.11-18.0.3+~7.0.11-18.0.4+~7.0.11-18.0.4+~7.0.11-29.0.0+~8.0.1-19.0.3+~8.0.1-19.0.5+~8.0.1-19.0.6+~8.0.1-1 |
None known |
Show 7 moreShow less
| Package | Affected | Fixed |
|---|---|---|
node-nodemailerDebian:13 |
All versions, plus listed versions 10.0.0+~8.0.1-110.0.10+~8.0.1-110.0.10+~8.0.2-16.10.0+~6.4.17-16.10.0+~6.4.17-1+deb13u1 Show 15 moreShow less7.0.10+~7.0.2-17.0.12+~7.0.5-17.0.5+~7.0.1-17.0.6+~7.0.1-17.0.9+~7.0.2-17.0.9+~7.0.2-28.0.11+~8.0.1-18.0.2+~7.0.11-18.0.3+~7.0.11-18.0.4+~7.0.11-18.0.4+~7.0.11-29.0.0+~8.0.1-19.0.3+~8.0.1-19.0.5+~8.0.1-19.0.6+~8.0.1-1 |
None known |
node-nodemailerDebian:14 |
before 10.0.10+~8.0.1-1, plus listed versions 10.0.0+~8.0.1-16.10.0+~6.4.17-17.0.10+~7.0.2-17.0.12+~7.0.5-17.0.5+~7.0.1-1 Show 12 moreShow less7.0.6+~7.0.1-17.0.9+~7.0.2-17.0.9+~7.0.2-28.0.11+~8.0.1-18.0.2+~7.0.11-18.0.3+~7.0.11-18.0.4+~7.0.11-18.0.4+~7.0.11-29.0.0+~8.0.1-19.0.3+~8.0.1-19.0.5+~8.0.1-19.0.6+~8.0.1-1 |
10.0.10+~8.0.1-1 |
node-nodemailerUbuntu:20.04:LTS |
All versions, plus listed versions 6.3.0-26.3.1-16.4.0-16.4.1-16.4.2-16.4.5-1 |
None known |
node-nodemailerUbuntu:22.04:LTS |
All versions, plus listed versions 6.4.17-36.7.0-16.7.0-26.7.1+~6.4.4-1 |
None known |
node-nodemailerUbuntu:24.04:LTS |
All versions, plus listed versions 6.9.4+~6.4.9-26.9.4+~6.4.9-3ubuntu16.9.4+~6.4.9-4 |
None known |
node-nodemailerUbuntu:26.10 |
All versions, plus listed versions 8.0.4+~7.0.11-18.0.4+~7.0.11-29.0.0+~8.0.1-19.0.3+~8.0.1-19.0.5+~8.0.1-1 |
None known |
node-nodemailerUbuntu:26.04:LTS |
All versions, plus listed versions 7.0.5+~7.0.1-17.0.9+~7.0.2-27.0.10+~7.0.2-17.0.12+~7.0.5-18.0.4+~7.0.11-1 |
None known |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-100701 is a medium vulnerability (CVSS 6.0) in Nodemailer, published September 26, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.11%, the 1st percentile. Fixed in nodemailer 10.0.2.
References
github.com/nodemailer/nodemailer/security/advisories/GHSA-6vj9-mwq6-2f5v
vulncheck.com/advisories/nodemailer-5.0.0-through-10.0.1-tls-servername-cache-confusion
nvd.nist.gov/vuln/detail/CVE-2026-100701
github.com/advisories/GHSA-2mg4-38wg-2h6f
github.com/nodemailer/nodemailer/commit/a6512dbcb3c6e7f2f70d3acccc5752defe3c61fe
github.com/nodemailer/nodemailer/releases/tag/v10.0.2
Left out here: the rest of 2 source descriptions. The JSON record has them.