CVE-2026-121424: Nodemailer: A nested comment ends early in addressparser, releasing the rest of the comment as a recipient

Published Oct 23, 2026
·
Updated

Vulnerability summary

RFC 5322 comments nest. addressparser ended a comment at the first ), including the one that closes a nested comment, and parsed the rest of the outer comment as header text. Victim (x(y) <evil@evil.com>) <v@victim.com> names v@victim.com with x(y) <evil@evil.com> as a comment, and Nodemailer read it as the address evil@evil.com. This is the same shape as the escaped parenthesis fixed in 10.1.2, reached through nesting instead of a quoted-pair. Affected: 3.0.0 through 10.1.3.

Attacker capabilities

The attacker controls the text of an address that an application passes to Nodemailer, or the From or To header of an inbound message parsed with mailparser. No access to the application, its configuration or its credentials is needed. The value is a syntactically valid RFC 5322 address that conformant parsers accept without defects.

Realistic exploitation scenario

An application validates a submitted address with a conformant parser and allows only its own domain. The attacker submits Victim (x(y) <evil@evil.com>) <v@victim.com>, which validates as v@victim.com. Nodemailer delivers to evil@evil.com. In the inbound direction, a DMARC or display layer built on a conformant parser and a mail client built on mailparser disagree on the author of the same message, which is the setting for sender spoofing. The boundary crossed is the application's recipient allow list, or the author check of the receiving side.

Proof of concept

js const addressparser = require('nodemailer/lib/addressparser'); console.log(addressparser("Victim (x(y) <evil@evil.com>) <v@victim.com>")); // [ { address: 'evil@evil.com', name: 'Victim) v@victim.com' } ]

Python's email.headervalueparser.getaddresslist reads the same value as v@victim.com with the display name Victim, with no defects reported.

The envelope a message gets is built from the same parse, so sendMail({ to: "Victim (x(y) <evil@evil.com>) <v@victim.com>" }) issues the RCPT TO shown above.

Security impact

Mail intended for an approved recipient is delivered to an attacker chosen domain, disclosing its content, and parsers built on this module report a different author than conformant ones. The misreading only occurs on values a conformant validator approves, so correct validation is bypassed. Affected are applications that pass user influenced addresses to Nodemailer and consumers of the standalone parser such as mailparser.

The fix counts comment depth and ends a comment only at the ) that closes the outermost one.

Found in an internal review of addressparser on 2026-10-18. Verified on 3.0.0, 6.9.16 and 10.1.3.

Other sources

Nodemailer from 3.0.0 before 10.1.4 contains an address parsing vulnerability in addressparser that allows remote attackers to redirect recipients by ending nested RFC 5322 comments at the first closing parenthesis. Attackers can submit addresses whose nested comment hides an attacker address, bypassing conformant validators and recipient allow lists to receive mail or spoof senders in mailparser.

— MITRE

Affected Software

10 affected componentsFixes available
npm/nodemailer>=3.0.0<10.1.4
10.1.4
debian/node-nodemailer*
debian/node-nodemailer*
debian/node-nodemailer*
debian/node-nodemailer<=6.8.0+~6.4.6-1, <=6.10.0+~6.4.17-1+deb13u1, <=10.0.14+~8.0.2-1
10.1.7+~8.0.2-1
ubuntu/node-nodemailer*
ubuntu/node-nodemailer*
ubuntu/node-nodemailer*
ubuntu/node-nodemailer*
ubuntu/node-nodemailer*

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade npm/nodemailer to a version that resolves this vulnerability.

    Fixed in 10.1.4
  2. Upgrade

    Upgrade debian/node-nodemailer to a version that resolves this vulnerability.

    Fixed in 10.1.7+~8.0.2-1
  3. Upgrade

    Upgrade Nodemailer to a version that resolves this vulnerability.

    Fixed in 10.1.4

Event History

Oct 23, 2026
Advisory Published
via OSV·09:53 PM
Data Sourced
via OSV·09:53 PM
DescriptionSeverityWeaknessAffected Software
Nov 3, 2026
CVE Published
via MITRE·02:28 PM
Data Sourced
via MITRE·02:28 PM
DescriptionSeverityWeakness
Data Sourced
via NVD·03:17 PM
DescriptionSeverityWeakness

Frequently Asked Questions

1

Which deployments are affected?

Nodemailer versions 3.0.0 through 10.1.3 are affected. The listed package ecosystems are Ubuntu, Debian, and npm.

2

What must an attacker be able to control?

An attacker needs to control an address string passed by an application to Nodemailer, or a From or To header in an inbound message parsed with mailparser. They do not need application access, configuration access, or credentials.

3

Are applications that validate addresses with a standards-compliant parser protected?

No. The crafted value is a syntactically valid RFC 5322 address that conformant parsers accept, but Nodemailer can extract an attacker-controlled recipient from a nested comment.

4

How can this be exploited in outbound mail processing?

An application that permits only addresses in its own domain can validate a value such as "Victim (x(y) <evil@evil.com>) <v@victim.com>" as v@victim.com, while Nodemailer delivers the message to evil@evil.com.

5

What behavior indicates possible exposure?

Exposure is indicated when a submitted address or parsed header containing nested RFC 5322 comments causes Nodemailer to treat text inside the comment as a recipient address. This can result in delivery to an address that differs from the address accepted by upstream validation.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203