Repository navigation
chore(deps): override transitive pins to clear npm audit findings - #304
Merged
Merged
Conversation
There was a problem hiding this comment.
🟡 Changes recommended
The docs lockfile removes serve-handler’s required minimatch version, leaving an inconsistent dependency graph.
1 open finding
What changed in this PR
Adds temporary dependency overrides to address audit findings in development tooling and the docs site without changing published library code.
Changes:
- Adds overrides and refreshes both lockfiles.
- Records the audit improvements and remaining vulnerability.
- Documents override maintenance guidance.
| File | Description |
|---|---|
| package.json | Overrides get-uri’s basic-ftp dependency. |
| package-lock.json | Locks the updated FTP dependency. |
| docs/package.json | Adds docs dependency overrides. |
| docs/package-lock.json | Updates and deduplicates overridden dependencies. |
| CHANGELOG.md | Records audit remediation and remaining findings. |
| AGENTS.md | Documents override scope and removal guidance. |
Files not reviewed (1)
- docs/package-lock.json: Generated file
🧠 Review effort: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
There was a problem hiding this comment.
🔵 Needs a closer look
Several overrides cross major versions and warrant human confirmation of tooling compatibility beyond the reported build and smoke checks.
1 open finding
Files not reviewed (1)
- docs/package-lock.json: Generated file
🧠 Review effort: Balanced
Add an `overrides` block to both package.json files for transitive dependencies whose parent asks for a vulnerable range even though a patched release exists. Root: `get-uri` (via release-it -> proxy-agent -> pac-proxy-agent) pins `basic-ftp` 5; override to 6.2.1+. Root audit is now clean. Docs: `docusaurus-plugin-llms` pins `minimatch` 9.0.3 and `yaml` 2.8.1 exactly (overridden to 9.0.7+ / 2.8.3+); `sockjs` gets `uuid` 11; `argparse` 2 drops the `sprintf-js` that js-yaml 3's CLI-only dependency pulled in; `postcss-selector-parser` 7.1.6+, `serialize-javascript` 7.0.5+ and `tinypool` 2.1.2+ replace the majors Docusaurus 3.10 still resolves. Docs audit goes from 52 findings to 29, all from the single `braces` advisory (GHSA-vfj7-8cjw-p6xm) that has no patched release. Verified: root typecheck/build/tests, release-it and get-uri still load, docs typecheck and production build.
… dependents
A parent-scoped override ("docusaurus-plugin-llms": { "minimatch": ... })
leaked past its parent: once the overridden copy was hoisted, npm deduped
serve-handler's minimatch@3.1.5 edge onto minimatch 9.0.9 and dropped the
nested copy from the lockfile. serve-handler calls require('minimatch') as
a function, which minimatch 9's CJS entry is not, so `docusaurus serve`
would have thrown on its rewrite path.
Keying each rule on the range the dependent asks for ("minimatch@9",
"yaml@2", "uuid@8", "basic-ftp@5") only matches edges requesting that
range, so serve-handler keeps its own 3.1.5 subtree. Audit results are
unchanged (root 0, docs 29 from the braces advisory). Verified with a
clean `npm ci` from the lockfile, the docs production build and a
`docusaurus serve` smoke test. AGENTS.md guidance corrected to match.
…isories Root: npm audit fix moves release-it's undici to 7.30.1 (GHSA-4w7w-5xrc-9h26, GHSA-2m5v-pch6-74hx, GHSA-qrxm-fqhp-jwvm, GHSA-9fm3-97px-rjf6, GHSA-xjj6-f33q-929c and others). Docs: raise the minimatch@9 override to ^11.0.1 (GHSA-g3hv-75wg-m249 has no 9.x fix; docusaurus-plugin-llms uses the named minimatch export, which 11 still provides) and serialize-javascript to ^7.1.3 (GHSA-m5mm-p8h7-m29v). In-range lockfile bumps clear joi, follow-redirects, qs, body-parser and fast-uri. serve-handler keeps minimatch 3.1.5, which has no patched release. Verified with clean npm ci in both projects, root audit 0, lint, typecheck, 2370 tests, docs production build and a docusaurus serve smoke test.
paustint
force-pushed
the
chore/npm-audit-overrides
branch
from
November 1, 2026 15:34
8ebea36 to
e450173
Compare
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
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
Clears the open Dependabot /
npm auditfindings in both the root package and the docs site, using in-range lockfile bumps plus npmoverrideswhere an upstream pin holds a vulnerable range open. No changes to the published library.Rebased onto
main(after v8.1.3) and refreshed for the advisories published since this PR was opened.Root (
package.json)undici7.0.0–7.30.0 (8 advisories: TLS validation bypass, cross-origin cache poisoning, several DoS)undici7.30.1(in range)basic-ftp<=6.2.0 (GHSA-c475-qrg2-pj4r)get-uri(release-it → proxy-agent → pac-proxy-agent → get-uri) wants^5.3.1, no patched 5.x"basic-ftp@5": "^6.2.1"ip-address<=10.7.3npm audit→ 0 vulnerabilities. The only 6.0 breaking change in basic-ftp is that separate FTP transfer hosts are off by default, whichget-urinever opts into.npm audit fix --forcewould have downgraded release-it to 15.10.3, which is not a real fix.Docs (
docs/package.json)minimatch<11.0.1 (ReDoS ×3, GHSA-g3hv-75wg-m249)docusaurus-plugin-llmspins9.0.3; g3hv has no 9.x fix"minimatch@9": "^11.0.1"(the plugin uses the namedminimatchexport, which 11 keeps)yaml<2.8.3docusaurus-plugin-llmspins2.8.1"yaml@2": "^2.8.3"uuid<11.1.1sockjswants^8.3.2"uuid@8": "^11.1.1"; it only callsv4()sprintf-js(no patched release)argparse@1argparse^2.0.1; js-yaml 3 only uses argparse in its CLIpostcss-selector-parser<7.1.6^6^7.1.6serialize-javascript<7.1.3 (RCE, DoS, XSS)^6^7.1.3(7.0.0 only raised Node to 20+)tinypool<2.1.2 (prototype pollution → RCE)@docusaurus/corewants^1.0.2^2.1.2(2.0.0 only dropped Node 18; Docusaurus loads it via dynamicimport())joi,follow-redirects,qs,body-parser,fast-uriOverrides are keyed on the range the dependent asks for (
"minimatch@9") rather than nested under a parent: a parent-scopedminimatchoverride got hoisted and npm deduped serve-handler'sminimatch@3.1.5onto it, which would breakdocusaurus serve(serve-handler callsrequire('minimatch')as a function). This guidance is recorded in a newDependency overridessection ofAGENTS.md.Remaining (no patched release to move to):
minimatch3.1.5 under serve-handler (GHSA-g3hv-75wg-m249, moderate; fixed only in 11.x, whose API serve-handler can't use). Only reachable viadocusaurus servewith patterns from our own config. npm reports it once per dependent, hence 18 moderate.deepmerge<=4.3.1 under@svgr/plugin-svgo(GHSA-gcqx-w48m-w2h4, low).Verification
npm ci,npm audit0,npm run typecheck,npm run lint,npm run format:check,npm test(2370 passing),npx release-it --versionnpm ci,npm run build(production build + CSP),docusaurus servesmoke test (/,/docs/overview,/llms.txt200; unknown path 404), tinypool 2 worker-pool run and serialize-javascript 7 smoke tests