Read the docs
TI-2026-80023 Aliases GHSA-m943-m63m-w62w

Group parsing in Nodemailer addressparser misreads recipients

Priority LOW 38CWE-20Published · Updated

Key facts

Attack vector
—
Privileges required
—
User interaction
—
Attack complexity
—
Impact type
—
Confidentiality · integrity · availability
—
Fix status
Fixed

No CVSS vector from any source. Fix status from GitHub.

Summary

Nodemailer's addressparser ends an RFC 5322 group at the first semicolon even when it sits inside a quoted display name or comment, so the text after it is read as top level recipients. An attacker who controls an address field can make a value that a conformant parser reads as one allowed mailbox be delivered to a different address chosen by the attacker. This flaw is classified as CWE-20 (improper input validation) and CWE-436 (interpretation conflict), and it affects nodemailer from 3.0.0 before 10.1.4.

Written with Claude Haiku 5.5 from the sources below · 2026-10-28

Description from the GitHub advisory

### Vulnerability summary addressparser ends an RFC 5322 group at the first `;`, including one inside a quoted display name or a comment. The text after it is parsed again as top level recipients with the quoting flipped, so text that every conformant parser reads as a display name or comment becomes a live address. `G: (a; <[email protected]>) <[email protected]>;` names only `[email protected]`, and Nodemailer read it as the single recipient `[email protected]`. Affected: 3.0.0 through 10.1.3. ### Attacker capabilities The attacker controls the text of an address field that an application passes to Nodemailer, or the 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 group that conformant parsers accept without defects. ### Realistic exploitation scenario An application validates the recipients of a submitted address list with a conformant parser and only allows addresses at its own domain. The attacker submits `G: (a; <[email protected]>) <[email protected]>;`. The validator sees one mailbox, `[email protected]`, and approves it. Nodemailer delivers to `[email protected]` only. The same works through a quoted display name, `G: "a;" "<[email protected]>" <[email protected]>;`. The boundary crossed is the application's recipient allow list. ### Proof of concept ```js const addressparser = require('nodemailer/lib/addressparser'); console.log(addressparser("G: (a; <[email protected]>) <[email protected]>;")); // [ { name: 'G', group: [ [Object] ] }, { address: '[email protected]', name: ') [email protected]' } ] ``` Python's `email._header_value_parser.get_address_list` reads the same value as the single mailbox `[email protected]`, with no defects reported. The envelope a message gets is built from the same parse, so `sendMail({ to: "G: (a; <[email protected]>) <[email protected]>;" })` issues the RCPT TO shown above. ### Security impact Mail that an application intends for an approved recipient goes to a recipient chosen by the attacker, which discloses its content, and the intended recipient never receives it. The misreading only occurs on values a conformant validator approves, so correct validation is bypassed, which makes it a security issue rather than a parsing bug. Affected are applications that pass user influenced address lists to Nodemailer and consumers of the standalone parser such as mailparser. The fix tracks quoted strings and comments inside a group and reads only a `;` outside them. Found in an internal review of addressparser on 2026-10-18. Verified on 3.0.0, 6.9.16 and 10.1.3.

Why it matters now

Fix Fixed nodemailer (npm): 10.1.4

SSVC decision points

Not available: CISA has not published SSVC decision points for this record.

Affected products

VendorProductAffected versionsFixed inStatusSource
—nodemailer (npm)3.0.0 to before 10.1.410.1.4Patch availableGHSA-m943-m63m-w62w
  • nodemailer (npm) Vendor— Affected 3.0.0 to before 10.1.4 Fixed in 10.1.4 Patch available GHSA-m943-m63m-w62w

Remediation

Update nodemailer to version 10.1.4 or later. The sources list no other fixed version for nodemailer.

Written with Claude Haiku 5.5 from the sources below · 2026-10-28

  • Fix · GHSA-m943-m63m-w62w nodemailer (npm) Fixed in 10.1.4 Advisory →

Timeline

  1. 2026-10-23 Threatist record created from GHSA-m943-m63m-w62w

References

Sources

This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences