chore(deps): fix npm audit vulnerabilities (non-breaking)#2385
Conversation
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>
There was a problem hiding this comment.
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.
Summary
Runs
npm audit fix(non-breaking, no--force) and bumps the criticaltardevDependency into its patched, in-range version. Takes the tree from 12 vulnerabilities → 4, andnpm audit --audit-level=highnow exits 0 (remaining 4 are all moderate/low).Only
package.json(thetardevDependency floor) andpackage-lock.jsonchange.Fixed (all in-range, no declared-range major bumps)
tarbrace-expansion{}expansionfast-urijs-yamllinkify-itmailto:DoSbody-parserhonotarwas bumped explicitly becausenpm audit fix/npm updaterefused to move it despite 7.5.21 being inside the existing^7.5.13range (npm quirk); the floor was raised to^7.5.21so it can't regress.Deliberately NOT applied
@hono/node-serverpath-traversal (moderate) — fix requiresnpm audit fix --force, which forces a breaking@modelcontextprotocol/sdkbump. Out of scope per request.esbuild(moderate) — the fix (0.28.1) is outside the declared^0.27.0range, i.e. a breaking dev-tool bump. Left as-is.Both remaining items are moderate and do not affect the
--audit-level=highgate.Verification
npm audit --audit-level=high→ exit 0 ✅npm run build→ success ✅npm run test:node(the main suite, on the repo-pinned Node 20) → 12192 pass, 0 fail ✅adcp fuzzCLI tests:test/lib/conformance-cli.test.jshas a handful of pre-existing flaky failures (Unterminated string in JSON at position 8192). ItsrunClihelper resolves on the child process'exit'event while still accumulatingstdoutvia'data', so when the JSON report exceeds one ~8KB pipe chunk the trailing bytes are lost. Reproduced identically onorigin/mainwith 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, andtaris a devDependency that does not ship in the published package.🤖 Generated with Claude Code