{"id":"CVE-2026-121426","kind":"vulnerability","aliases":["CVE-2026-121426"],"related":[],"title":"Nodemailer: address parser lets mail reach attacker-chosen domains, bypassing allow lists","description":"Nodemailer from 3.0.0 before 10.1.4 contains an address parsing vulnerability in addressparser that ends an angle-addr at a '>' inside a quoted local part, comment or domain literal. Attackers can submit addresses that validate as an allowed domain but are delivered to an attacker-controlled domain, bypassing recipient allow lists and disclosing message content.","summary":"Nodemailer's addressparser ends an address early at a '>' inside a quoted local part, comment or domain literal. An attacker can submit an address that passes a domain allow list but is delivered to an attacker-controlled domain, exposing message content.","severity":"high","cvss":8.3,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["email","node","nodemailer","package","self-hosted"],"not_affected_if":["hardcoded-recipients","no-user-supplied-addresses"],"how_to_check":"- Check the installed version: `npm ls nodemailer`\n- Look for `nodemailer` in package.json and lockfiles at version 3.0.0 up to but not including 10.1.4\n- Check whether the app uses recipient allow lists based on address parsing","fix":"- `nodemailer` `10.1.4` (fixed release, per the NVD description: versions from 3.0.0 before 10.1.4 are affected)","status":"open","published_at":"2026-11-03T15:17:33+00:00","first_seen_at":"2026-11-03T15:21:59+00:00","triaged_at":"2026-11-03T15:22:40+00:00","updated_at":"2026-11-03T15:22:40+00:00","category":"package","confidence":0.6,"triage":{"at":"2026-11-03T15:22:40Z","model":"claude-haiku-5-5","output":{"fix":"- `nodemailer` `10.1.4` (fixed release, per the NVD description: versions from 3.0.0 before 10.1.4 are affected)","reach":"network","title":"Nodemailer: address parser lets mail reach attacker-chosen domains, bypassing allow lists","impact":"medium","summary":"Nodemailer's addressparser ends an address early at a '>' inside a quoted local part, comment or domain literal. An attacker can submit an address that passes a domain allow list but is delivered to an attacker-controlled domain, exposing message content.","audience":"developers","category":"package","nicknames":[],"who_cares":["nodemailer","node","email","self-hosted"],"confidence":0.6,"fix_status":"available","needs_auth":"unknown","worst_case":"Mail content is delivered to attacker-controlled domains","analyst_note":"Confirm whether the attack needs user-submitted addresses and what default configuration is affected; check the vendor advisory linked from the sources.","how_to_check":"- Check the installed version: `npm ls nodemailer`\n- Look for `nodemailer` in package.json and lockfiles at version 3.0.0 up to but not including 10.1.4\n- Check whether the app uses recipient allow lists based on address parsing","plain_action":"","needs_analyst":true,"not_affected_if":["hardcoded-recipients","no-user-supplied-addresses"],"who_is_affected":"Applications that use Nodemailer to send mail and rely on recipient domain allow lists, or that pass user-supplied addresses to it. Apps that send only to fixed, hardcoded addresses are less exposed. The sources do not say which default configurations are affected.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"high"},"cost_usd":0.000726,"input_tokens":4196,"output_tokens":613,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-121426':16A,19A '-2026':15A,18A '10.1.4':73C '3.0.0':71C 'addr':86C 'address':2A,32B,50B,76C,101C 'addresspars':29B,80C 'allow':12A,55B,106C,119C 'angl':85C 'angle-addr':84C 'attack':8A,46B,63B,98C,114C 'attacker-chosen':7A 'attacker-control':62B,113C 'bypass':11A,117C 'chosen':9A 'comment':41B,94C 'contain':74C 'content':68B,124C 'control':64B,115C 'cve':14A,17A 'deliv':59B,110C 'disclos':122C 'domain':10A,43B,54B,65B,96C,107C,116C 'earli':33B 'email':20B 'end':30B,82C 'expos':66B 'host':26B 'insid':36B,89C 'let':4A 'list':13A,56B,120C 'liter':44B,97C 'local':39B,92C 'mail':5A 'messag':67B,123C 'node':21B 'nodemail':1A,22B,27B,69C 'packag':23B 'pars':77C 'parser':3A 'part':40B,93C 'pass':52B 'quot':38B,91C 'reach':6A 'recipi':118C 'self':25B 'self-host':24B 'submit':48B,100C 'valid':103C 'vulner':78C","nicknames":[],"mitigations":[],"who_affected":"Applications that use Nodemailer to send mail and rely on recipient domain allow lists, or that pass user-supplied addresses to it. Apps that send only to fixed, hardcoded addresses are less exposed. The sources do not say which default configurations are affected.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"developers","plain_action":null,"pkeys":[],"ptokens":[],"labels":["email","high","node","nodemailer","package","selfhosted"],"first_public_at":"2026-10-19T12:06:05+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:H/AT:P/PR:N/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_by":"disclosure@vulncheck.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-121426","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-121426","severity":null,"published_at":"2026-11-03T15:17:33+00:00","modified_at":"2026-11-03T15:17:33+00:00","first_seen_at":"2026-11-03T15:21:59+00:00","fetched_at":"2026-11-03T15:21:59+00:00","note":null}],"documents":[{"id":58377,"url":"https://github.com/nodemailer/nodemailer/security/advisories/GHSA-85x2-q946-cp5h","title":"Vendor advisory: github.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":"2026-10-19T12:06:05+00:00","relation":"advisory","confidence":null,"note":"Vendor advisory: github.com"},{"id":58378,"url":"https://www.vulncheck.com/advisories/nodemailer-3.0.0-before-10.1.4-recipient-domain-confusion-via-addressparser","title":"Third-party advisory: www.vulncheck.com","kind":"advisory","source":"nvd","publisher":"research","text":null,"published_at":null,"relation":"advisory","confidence":null,"note":"Third-party advisory: www.vulncheck.com"}],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}