Skip to content

fix(deps): patch form-data, multer, and nodemailer security advisories - #97

Merged
vineethkrishnan merged 1 commit into
mainfrom
fix/security-cves-transitive
Jul 16, 2026
Merged

fix(deps): patch form-data, multer, and nodemailer security advisories#97
vineethkrishnan merged 1 commit into
mainfrom
fix/security-cves-transitive

Conversation

@vineethkrishnan

Copy link
Copy Markdown
Owner

Summary

  • Clears the three HIGH advisories that have failed the Trivy (filesystem) check on main since 2026-06-22.
  • form-data and multer are transitive with no fixed parent release, so they are pinned via overrides — the same approach already used for qs and fast-uri.
  • nodemailer is a direct dependency and needs the 9.x major.
Package From To Advisory
form-data 4.0.5 4.0.6 (override) CVE-2026-12143 — form field override via CRLF injection
multer 2.1.1 2.2.0 (override) CVE-2026-5079 — DoS via deeply nested field names
nodemailer 8.0.7 ^9.0.1 GHSA-p6gq-j5cr-w38f — raw option bypasses disableFileAccess/disableUrlAccess

Type of Change

  • fix — Bug fix

Why the nodemailer major is safe here

9.0.0's breaking changes are the raw message option, TLS validation when fetching remote content, and replacing url.parse. EmailNotifierAdapter only calls createTransport with SMTP settings and sendMail with a subject and an html body — no raw, no attachments, no remote content fetching. None of the changed surfaces are reachable from this codebase.

Test Plan

  • Unit tests pass (npm test) — 569 tests, 65 suites
  • Build succeeds (npm run build)
  • Lint passes (npm run lint:check)
  • Trivy 0.70.0 with CI's exact flags (fs --severity CRITICAL,HIGH --ignore-unfixed --exit-code 1): 3 HIGH before → 0 after, exit 0

Notes

Trivy has failed on main since 2026-06-22 with three HIGH advisories:

- form-data 4.0.5, CVE-2026-12143 (form field override via CRLF injection),
  transitive via axios which still pins 4.0.5 on its latest release
- multer 2.1.1, CVE-2026-5079 (DoS via deeply nested field names), transitive via
  @nestjs/platform-express
- nodemailer 8.0.7, GHSA-p6gq-j5cr-w38f (raw option bypasses disableFileAccess /
  disableUrlAccess)

The first two are transitive with no fixed parent release, so they are pinned via
overrides, matching the approach already used for qs and fast-uri. nodemailer is a
direct dependency and needs the 9.x major.

Nodemailer 9's breaking changes do not reach this codebase: they cover the raw
message option, TLS validation when fetching remote content, and url.parse. The email
notifier only calls createTransport with SMTP settings and sendMail with a subject and
html body — no raw option, no attachments, no remote content.

Verified with Trivy 0.70.0 using the same flags CI runs: 3 HIGH before, 0 after.
@vineethkrishnan
vineethkrishnan merged commit 8af40cb into main Jul 16, 2026
12 checks passed
@vineethkrishnan
vineethkrishnan deleted the fix/security-cves-transitive branch July 16, 2026 05:54
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.

1 participant