Skip to content

fix(deps): bump nodemailer to ^9.0.1 (security)#477

Open
pddivine wants to merge 1 commit into
forwardemail:masterfrom
pddivine:fix/nodemailer-9-security
Open

fix(deps): bump nodemailer to ^9.0.1 (security)#477
pddivine wants to merge 1 commit into
forwardemail:masterfrom
pddivine:fix/nodemailer-9-security

Conversation

@pddivine

Copy link
Copy Markdown

Summary

Bumps nodemailer from ^7.0.12 to ^9.0.1 to resolve three high-severity advisories affecting nodemailer <= 9.0.0:

  • GHSA-p6gq-j5cr-w38f — SMTP command injection via unsanitized envelope.size
  • CRLF injection via Transport name option (EHLO/HELO)
  • CRLF injection in List-* header comments

Closes #476.

Breaking change review (v7 → v9)

Both intermediate major bumps were reviewed against this library's usage of nodemailer (createTransport + sendMail in index.js) and the test suite:

  • v8: Error code NoAuth renamed to ENOAUTH. Not referenced anywhere in this repo (grep clean in index.js, test/, examples/).
  • v9: HTTPS requests made while fetching remote content (attachment href/path URLs, OAuth2 token endpoints, HTTP/HTTPS proxy CONNECT) now validate the server's TLS certificate by default. This library does not configure those code paths itself, so the change is transparent here. Downstream consumers who previously relied on lax TLS can opt out per request with tls.rejectUnauthorized=false.

Test plan

  • npm test — lint passes, all 29 ava tests pass on nodemailer 9.0.1
  • npm audit no longer flags nodemailer as a direct vulnerable dependency

Resolves three high-severity advisories in nodemailer <=9.0.0:

- GHSA-p6gq-j5cr-w38f: SMTP command injection via unsanitized envelope.size
- CRLF injection via Transport name option (EHLO/HELO)
- CRLF injection in List-* header comments

Closes forwardemail#476.

Breaking changes between v7 and v9 were reviewed; neither affects this
library's usage:

- v8 renamed error code `NoAuth` to `ENOAUTH` (not referenced here).
- v9 enables TLS certificate validation by default when fetching remote
  content (attachments, OAuth2, proxy CONNECT). This library does not
  configure those code paths itself; consumers who rely on lax TLS can
  opt out per request via tls.rejectUnauthorized=false.

All 29 ava tests pass and lint is clean.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Security Vulnerability in Nodemailer Dependency

1 participant