chore(security): bundle npm transitive fixes for root package-lock.json - #24
benfrank241 wants to merge 2 commits into
Conversation
Raise the fast-uri override to ^3.1.6 (resolves 3.1.7) and add a qs override at ^6.16.0 (resolves 6.16.0), clearing 5 Dependabot alerts. Both packages are transitive-only, and every declaring parent accepts the patched range (fast-uri: ajv ^3.0.1; qs: body-parser ^6.15.2, express ^6.14.0), so plain global overrides are correct here. Verified locally with the exact CI steps: npm ci, npm run build, npm run lint -- all green; npm audit reports 0 vulnerabilities. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Closes four Dependabot alerts on the root package-lock.json, all of which fire against this repo's own exact-pin overrides rather than against an upstream dependency: hono 4.12.34 -> ^4.13.5 (resolves 4.13.7) #68 #69 #70 js-yaml 4.3.1 -> ^4.3.2 (resolves 4.3.2) #71 Both packages are transitive-only and every declaring parent accepts the patched range (hono <- @hono/node-server peer ^4 and @modelcontextprotocol/sdk ^4.11.4; js-yaml <- eslint and @eslint/eslintrc ^4.1.0), so global overrides are correct. Caret rather than an exact pin so the next patch advisory does not fire against the pin itself, and caret rather than >= so npm cannot cross a major (js-yaml 5.x and @hono/node-server 2.x remain maintainer decisions). Lockfile churn is exactly these two entries; no packages added or removed. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
Daily sweep 2026-09-14: four new alerts (#68 #69 #70 Both were exact pins this repo added in earlier sweeps ( Three exact pins still remain and are latent repeats: |
Daily security sweep. Recreates the Dependabot fixes for the root
package-lock.jsonon a human-authored branch so the change actually gets CI (Dependabot's own branches don't receive CI secrets, so its PRs fail with no signal).Updated 2026-09-14 — four new alerts landed on this same lockfile while this PR sat awaiting review. Rather than open a second PR that would collide on
package.jsonoverridesandpackage-lock.json, they are folded in here. This PR now closes all 10 open alerts in the repo.Alerts closed by this PR
>= 3.0.0, < 3.1.6>= 3.0.0, < 3.1.6>= 3.1.2, < 3.1.6>= 3.1.3, < 3.1.6>= 4.0.0, < 4.3.2>= 6.14.2, <= 6.15.3>= 2.2.5, < 6.16.0< 4.13.5< 4.13.5< 4.13.5Changes
All four packages are transitive only — none is a direct dependency — so all are fixed via
overrides:fast-uri3.1.5^3.1.6qs^6.16.0hono4.12.34^4.13.5js-yaml4.3.1^4.3.2Global (unscoped) overrides are correct here — every declaring parent accepts the patched range, so nothing innocent gets rewritten:
fast-uri←ajv(x2, under@modelcontextprotocol/sdkandajv-formats), both^3.0.1qs←body-parser^6.15.2,express^6.14.0hono←@hono/node-serverpeer^4,@modelcontextprotocol/sdk^4.11.4js-yaml←eslint^4.1.0,@eslint/eslintrc^4.1.0Caret rather than
>=so npm cannot jump a major past what those parents allow.Note: eight of these ten alerts fired against our own pins
fast-uri: 3.1.5,hono: 4.12.34andjs-yaml: 4.3.1were exact pins added by earlier sweeps. An exact pin freezes the package, so the next advisory against that version fires against the pin itself rather than against anything upstream. That is the origin of #62/#63/#65/#66 (fast-uri), #68/#69/#70 (hono) and #71 (js-yaml).Only
qs(#64, #67) is an ordinary upstream transitive advisory — it had no override at all. This PR converts every affected pin to a caret range, which fixes the recurrence, not just the current advisory. Three exact pins remain in the overrides block and are latent repeats of the same failure mode:@hono/node-server1.19.15— latest is 2.1.1 (major)body-parser2.3.0— already latestip-address10.3.1— latest is 10.7.0brace-expansion@^1.1.0/@^2.0.0are also exact but are deliberately major-scoped. Unfreezing@hono/node-server(and, separately,js-yamlpast 4.x to 5.4.2) means crossing a major, which is a maintainer call — not made here.Lockfile churn
Cumulative over both commits: 7 entries, no packages added or removed.
fast-uri3.1.5 → 3.1.7,qs6.15.2 → 6.16.0, plusside-channel1.1.0→1.1.1,side-channel-list1.0.0→1.0.1,es-object-atoms1.1.1→1.1.2 (all patch-level, all insideqs's own subtree)hono4.12.34 → 4.13.7,js-yaml4.3.1 → 4.3.2Verification
Ran the exact steps from
.github/workflows/ci.ymllocally against the final tree, all green:npm cinpm run build(exit 0)npm run lint(exit 0)npm auditreports 0 vulnerabilities. There is notestscript in this package, so that step is skipped (CI doesn't run one either).No majors, no forced resolves (
--force/--legacy-peer-depswere not used), and no unrelated changes bundled in.