{"id":"CVE-2026-92595","title":"Nodemailer (npm package `nodemailer`) versions 9.1.0 and earlier do not honor the `disableFileAccess` and `disableUrlAccess` sandbox options when message content is resolved through the public plugin API `MailMessage.resolveContent()` us…","summary":"Nodemailer (npm package `nodemailer`) versions 9.1.0 and earlier do not honor the `disableFileAccess` and `disableUrlAccess` sandbox options when message content is resolved through the public plugin API `MailMessage.resolveContent()` us…","severity":"medium","cvss":5.9,"cvssVector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:L/A:N","cwe":["CWE-73"],"vendor":"nodemailer","product":"nodemailer","affected":["nodemailer < 9.1.1"],"published":"2026-09-16","updated":"2026-09-19","sourceUpdated":"2026-09-19T03:17:17.593","source":"NVD","sourceUrl":"https://nvd.nist.gov/vuln/detail/CVE-2026-92595","references":[{"url":"https://github.com/nodemailer/nodemailer/security/advisories/GHSA-8m3c-c648-2xjj","label":"disclosure@vulncheck.com"},{"url":"https://www.vulncheck.com/advisories/nodemailer-before-9.1.1-security-sandbox-bypass-via-resolvecontent","label":"disclosure@vulncheck.com"},{"url":"https://github.com/nodemailer/nodemailer/security/advisories/GHSA-8m3c-c648-2xjj","label":"134c704f-9b21-4f2e-91b3-4a467353bcc0"}],"tags":["nvd","cve.org","exploit-available"],"epss":0.00195,"epssPercentile":0.09523,"exploitAvailable":true,"ssvc":{"exploitation":"poc","automatable":"no","technicalImpact":"partial","timestamp":"2026-09-19T02:05:02.570496Z"},"ingestedAt":"2026-09-16T22:06:50.929Z","slug":"CVE-2026-92595","body":"## Overview\n\nNodemailer (npm package `nodemailer`) versions 9.1.0 and earlier do not honor the `disableFileAccess` and `disableUrlAccess` sandbox options when message content is resolved through the public plugin API `MailMessage.resolveContent()` using the documented legacy three-argument signature `resolveContent(data, key, callback)`. Because `shared.resolveContent()` normalizes the missing `options` argument to an empty object, the message-level flags copied into `mail.data` by the MailMessage constructor are discarded, and `resolveContentValue()` skips both access-control checks, reaching `nmfetch(url)` or `fs.createReadStream(path)`. As a result, plugin or application code that resolves untrusted message content (html, text, attachment `path` or `href`) via this API can be induced to read arbitrary local files or issue outbound HTTP(S) requests (server-side request forgery), bypassing the sandbox the application enabled. The internal paths used by `transporter.sendMail()` (`resolveAll()`, `_convertDataImages()`, and the MIME streaming path) are not affected. Fixed in version 9.1.1.\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"twilight","depthScore":44,"depthScoreParts":{"impact":32.5,"likelihood":0,"exploitation":12,"ransomware":0},"changes":[{"seq":207583,"id":"CVE-2026-92595","ts":1789786630237,"field":"exploit_available","old":"false","new":"true"}]}