fix(security): clear 19 dep-CVE alerts via in-major bumps + transitive overrides#186
Open
aaronjmars wants to merge 1 commit into
Open
fix(security): clear 19 dep-CVE alerts via in-major bumps + transitive overrides#186aaronjmars wants to merge 1 commit into
aaronjmars wants to merge 1 commit into
Conversation
…E alerts Detected by Aeon + npm audit on a clean install of upstream main. Before: 22 vulnerabilities (12 high, 8 moderate, 2 low). After: 3 (1 high, 2 moderate, electron/vite majors parked). Direct bumps (semver-compatible, no major changes): - next ^15.0.0 -> ^15.5.18 (closes 4 CVEs incl. GHSA-3h52, GHSA-g5qg, GHSA-r2fc, GHSA-4342) - axios ^1.7.0 -> ^1.13.6 - postcss ^8.5.6 -> ^8.5.15 (closes XSS via unescaped </style>) - vite ^5.4.0 -> ^5.4.21 (latest patch in current major; full fix needs vite 7+) Overrides for transitives that have no in-major-safe fix: - tar ^7.5.15 (closes 5 hardlink/symlink path-traversal CVEs) - brace-expansion ^5.0.6 (DoS via numeric range) - @babel/plugin-transform-modules-systemjs ^7.29.4 (arbitrary code on malicious input) - @tootallnate/once ^3.0.1 (control-flow scoping) - http-proxy-agent ^7.0.0 (pulls @TooTallNate fix) - ip-address ^10.2.0 (XSS in Address6 HTML-emitting methods) Intentionally NOT bumped (require major version decision from maintainers): - electron ^33.4.11 (CVEs need 38+: ASAR Integrity Bypass, AppleScript injection, Service Worker IPC spoof) — opening separately if you want - vite full fix (needs 7+, breaks @tailwindcss/vite + esbuild plugins) Severity: HIGH (multiple).
Author
|
Friendly bump — clears 19 dependency CVE alerts via in-major bumps plus transitive overrides (no breaking major upgrades). Mergeable, CI clean. Happy to address any feedback when you have a moment. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
npm auditon a clean install ofmainflags 22 dependency vulnerabilities (12 high, 8 moderate, 2 low). This PR closes 19 of them by bumping direct deps within their current major and overriding a handful of transitive packages. No public-facing API change, no breaking version bump in the runtime.The remaining 3 (electron 33 → 38+, vite 5 → 7+, esbuild under vite) all need major-version decisions you'd want to make yourselves — happy to follow up on those separately if helpful.
Layered on top of #184
This is intentionally scoped narrow so it doesn't churn the review surface for #184 (SSRF on
/api/upload-binary) — the only overlap is the lockfile, which regenerates cleanly off whichever PR you merge first. No source-file overlap.Direct bumps (semver-compatible)
next^15.0.0(15.5.15)^15.5.18axios^1.7.0^1.13.6postcss^8.5.6^8.5.15</style>in CSS stringify outputvite^5.4.0^5.4.21Overrides for transitive deps
Transitive packages with no in-major-safe path get pinned via
overrides:What each closes:
tar^7.5.15 — 5 distinct path-traversal / symlink-poisoning CVEs (GHSA-8qq5-rm4j-mr97, GHSA-83g3-92jg-28cx, GHSA-qffp-2rhf-9h96, GHSA-9ppj-qmqm-q256, GHSA-r6q2-hw4h-h46w). Was pulled in at 6.2.1 viaelectron-builder → node-gyp → tar.brace-expansion^5.0.6 — DoS via large numeric range defeating documentedmaxprotection.@babel/plugin-transform-modules-systemjs^7.29.4 — generates arbitrary code on malicious input.@tootallnate/once^3.0.1 — incorrect control-flow scoping (pulled byhttp-proxy-agent).http-proxy-agent^7.0.0 — picks up the@tootallnate/oncefix transitively too.ip-address^10.2.0 — XSS inAddress6HTML-emitting methods.postcss^8.5.15 — forcesnext/node_modules/postcss(nested at 8.4.31) to the patched version too.Intentionally NOT bumped (major version, your call)
electron^33.4.11executeJavaScriptIPC spoof, iframe origin in permission handler) are patched in 38.8.6+. Going 33 → 38+ crosses several majors with Node ABI changes; native modules andelectron-builderconfig want a maintainer-driven test pass.vitefull fix@tailwindcss/viteand the esbuild plugin surface.electron-builder^25.1.8npm audit fix --forceflags it as a breaking change.Happy to open follow-ups for any of these if you decide which direction you want to go.
Verification
npm installon a clean checkout ofmainwith these changes: 1013 packages, nonpm WARNfor the override targets, nonpm ERR.npm ls --depth=0: clean — nomissing,invalid, orUNMET PEER DEPentries.npm audit: 22 → 3 vulnerabilities. The 3 remaining are the major-bump items above.Detected by
Aeon +
npm auditagainstpackage-lock.json.Filed by Aeon.