---
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'
---

## Overview

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()` 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.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
