fix(deps): clear remaining npm audit advisories - #2075
Merged
Conversation
There was a problem hiding this comment.
Pull request overview
Updates v1 transitive dependencies to patched releases, complementing #2073 to eliminate reported npm advisories.
Changes:
- Adds targeted dependency overrides for eight packages.
- Updates nine lockfile entries without broad dependency churn.
Reviewed changes
Copilot reviewed 1 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| package.json | Adds patched-version overrides. |
| package-lock.json | Locks corresponding patched releases and metadata. |
💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.
Adds overrides for the five advisories present in the production dependency tree, plus two dev-only stragglers, bringing `npm audit` to zero. Only ip-address is meaningfully reachable: server/src/index.ts builds sandboxRateLimiter from express-rate-limit, which parses IPs via Address6 for subnet keying. Impact here is a rate-limit key bypass on /sandbox rather than the SSRF the advisory titles imply, since req.ip derives from the socket and the proxy binds localhost. The other four are installed but unexercised: hono middleware is never wired up, @hono/node-server's serve-static is never imported (only getRequestListener), fast-uri is reached only for ajv format checks whose result is never trusted for a host decision, and brace-expansion expands serve-handler's config-supplied pattern rather than the attacker-supplied path. nanoid and postcss are dev-only. Every patched release exists within the current major line. @hono/node-server is deliberately held at 1.19.17 rather than 2.x — a major bump has no place on a deprecated branch. Lock entries are patched in place rather than re-resolved, keeping the diff to the affected packages. Fixes #2074 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Gq5jMmxRUphrVbfNbYVmQH
olaservo
force-pushed
the
fix/v1-audit-clear
branch
from
August 24, 2026 00:14
b817637 to
a62c788
Compare
olaservo
approved these changes
Aug 24, 2026
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.
Fixes #2074 — stacked on #2073 (base is
fix/v1-js-yaml-override-bump; GitHub will retarget this tov1/mainautomatically once #2073 merges). Both PRs touch the sameoverridesblock and lock, so independent branches would conflict.Together with #2073 this brings
npm auditfrom 8 advisories to 0.Triage
Only one of the five production-tree advisories is meaningfully reachable. Full analysis in #2074; summary:
Reachable —
ip-address<=10.3.0 (high).server/src/index.ts:43buildssandboxRateLimiterfromexpress-rate-limit, which callsnew Address6(ip)for IPv6 subnet keying. Two of the three advisories are exactly about CIDR-suffix and IPv4-mapped/NAT64 misclassification. Impact in context is a rate-limit key bypass on/sandbox, not the SSRF the titles imply —req.ipderives from the socket under default trust-proxy settings and the proxy binds localhost.Present but unexercised — 4:
hono<=4.12.33@hono/node-server.@hono/node-server<1.19.15serve-staticon Windows. SDK imports onlygetRequestListener.fast-uri3.0.0-3.1.4ajvforformat: "uri"checks; the result is never trusted for a host decision.brace-expansion<=1.1.17serve-handler->minimatch@3.1.5. Atserve-handler/src/index.js:59the attacker controls the path; brace-expansion expands the pattern, which comes from config.Dev-only — 2:
nanoid,postcss(vite/tailwind build chain). Included only so the audit actually reaches zero.Change
All patched releases exist within the current major line — no majors:
ip-addresshono@hono/node-serverfast-uribrace-expansionnanoidpostcssLock entries were patched in place rather than re-resolved: 9 entries, 30 lines. A full re-resolve would instead churn 164 packages including production deps.
Verification
npm audit-> 0 vulnerabilitiesnpm run buildandnpm run lintboth passserve-handler(the brace-expansion path)HTTP 200; proxy auth gates correctly (401 / 200)ip-addressconsumer — and observed decrementing:X-RateLimit-Limit: 100,X-RateLimit-Remaining: 89tools/list+tools/callround-trip through the CLI against a live stdio serverNote on branch policy
AGENTS.mddirects agents to file an issue rather than open a PR againstv1/main. Opened at the explicit direction of a maintainer (@cliffhall), with #2074 filed and tracked on the Inspector V1 board alongside it.Not included
The
allowScriptsblock npm 11.19 writes topackage.jsonis unrelated and deliberately left out of both PRs.🤖 Generated with Claude Code
https://claude.ai/code/session_01Gq5jMmxRUphrVbfNbYVmQH