Skip to content

chore(deps): fix npm audit vulnerabilities (non-breaking)#2385

Merged
andybevan-scope3 merged 1 commit into
mainfrom
npm-audit-fix-and-pr
Jul 22, 2026
Merged

chore(deps): fix npm audit vulnerabilities (non-breaking)#2385
andybevan-scope3 merged 1 commit into
mainfrom
npm-audit-fix-and-pr

Conversation

@andybevan-scope3

Copy link
Copy Markdown
Collaborator

Summary

Runs npm audit fix (non-breaking, no --force) and bumps the critical tar devDependency into its patched, in-range version. Takes the tree from 12 vulnerabilities → 4, and npm audit --audit-level=high now exits 0 (remaining 4 are all moderate/low).

Only package.json (the tar devDependency floor) and package-lock.json change.

Fixed (all in-range, no declared-range major bumps)

Package Severity Advisory
tar 7.5.16 → 7.5.21 critical PAX path confusion / parse DoS / infinite loop / NUL-byte DoS
brace-expansion → 5.0.7 high DoS via exponential {} expansion
fast-uri → 3.1.4 high host confusion
js-yaml → 4.3.0 / 3.15.0 high merge-key quadratic DoS
linkify-it → 5.0.2 high mailto: DoS
body-parser → 2.3.0 moderate DoS on invalid limit
hono → 4.12.31 moderate XSS / cross-request context

tar was bumped explicitly because npm audit fix/npm update refused to move it despite 7.5.21 being inside the existing ^7.5.13 range (npm quirk); the floor was raised to ^7.5.21 so it can't regress.

Deliberately NOT applied

  • @hono/node-server path-traversal (moderate) — fix requires npm audit fix --force, which forces a breaking @modelcontextprotocol/sdk bump. Out of scope per request.
  • esbuild (moderate) — the fix (0.28.1) is outside the declared ^0.27.0 range, i.e. a breaking dev-tool bump. Left as-is.

Both remaining items are moderate and do not affect the --audit-level=high gate.

Verification

  • npm audit --audit-level=highexit 0
  • npm run build → success ✅
  • npm run test:node (the main suite, on the repo-pinned Node 20) → 12192 pass, 0 fail

⚠️ Note on the adcp fuzz CLI tests: test/lib/conformance-cli.test.js has a handful of pre-existing flaky failures (Unterminated string in JSON at position 8192). Its runCli helper resolves on the child process 'exit' event while still accumulating stdout via 'data', so when the JSON report exceeds one ~8KB pipe chunk the trailing bytes are lost. Reproduced identically on origin/main with this change stashed — it is unrelated to the dependency bump (a tar/archive library cannot affect a spawned CLI's stdout buffering). Not fixed here to keep this PR scoped to the audit fix.

Changeset

None — the changeset-check workflow excludes package.json/package-lock.json, and tar is a devDependency that does not ship in the published package.

🤖 Generated with Claude Code

Runs `npm audit fix` (non-breaking, no --force) and bumps the critical
`tar` devDependency into its patched, in-range version.

Fixed (all in-range, no declared-range majors):
- tar 7.5.16 -> 7.5.21 (critical: PAX path confusion, parse DoS, infinite loop, NUL-byte DoS)
- brace-expansion -> 5.0.7 (high: DoS)
- fast-uri -> 3.1.4 (high: host confusion)
- js-yaml -> 4.3.0 / 3.15.0 (high: merge-key quadratic DoS)
- linkify-it -> 5.0.2 (high: mailto DoS)
- body-parser -> 2.3.0 (moderate: DoS on invalid limit)
- hono -> 4.12.31 (moderate: XSS / cross-request context)

`npm audit --audit-level=high` now exits 0 (remaining 4 are moderate/low).

Deliberately NOT applied (would require `npm audit fix --force`, a breaking
@modelcontextprotocol/sdk bump): @hono/node-server path-traversal. esbuild's
fix (0.28.1) is out of the declared `^0.27.0` range, so left as-is; both are
moderate and do not affect the high audit gate.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@andybevan-scope3
andybevan-scope3 enabled auto-merge (squash) July 22, 2026 16:52

@aao-secretariat aao-secretariat Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AAO-SECRETARIAT verdict: Approve

Approve — dependency-only security bump, clean.

This PR touches only package.json and package-lock.json. It raises the tar devDependency floor ^7.5.13 → ^7.5.21 and carries transitive npm-audit-fix bumps (brace-expansion, fast-uri, js-yaml, linkify-it, body-parser, hono, content-type). No src/, bin/, or shipped-file changes; tar is a devDependency and no runtime dependency is touched, so a changeset is correctly omitted. Documented deferrals (@hono/node-server, esbuild) sit below the --audit-level=high gate, and the pre-existing conformance-cli flake is disclosed and shown to reproduce on main.

Gate check: gated_paths is false, high_risk is false, no no-auto-approve team match, and no prior decision. The reviewer surfaced zero findings — no critical/high/medium. Rows 1–8 do not fire (review_decision: REVIEW_REQUIRED only matters for row 2 when gated_paths is true, which it is not here). Falls through to row 9 → approve.

@benminer
benminer self-requested a review July 22, 2026 16:53
@andybevan-scope3
andybevan-scope3 merged commit 0d180b6 into main Jul 22, 2026
32 checks passed
@andybevan-scope3
andybevan-scope3 deleted the npm-audit-fix-and-pr branch July 22, 2026 16:55
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.

2 participants