Skip to content

fix(deps): bump js-yaml overrides to patched 3.15.1 / 4.3.1 - #2073

Open
cliffhall wants to merge 1 commit into
v1/mainfrom
fix/v1-js-yaml-override-bump
Open

fix(deps): bump js-yaml overrides to patched 3.15.1 / 4.3.1#2073
cliffhall wants to merge 1 commit into
v1/mainfrom
fix/v1-js-yaml-override-bump

Conversation

@cliffhall

Copy link
Copy Markdown
Member

Fixes #2072

Problem

The root overrides block pinned js-yaml to versions that sit inside the advisory range, so npm audit fix reported "fix available" and then changed nothing — overrides take precedence over anything audit wants to do.

"js-yaml@<4":  "3.15.0",   // advisory range: 3.0.0 - 3.15.0
"js-yaml@>=4": "4.2.0"     // advisory range: 4.0.0 - 4.3.0

Advisories: GHSA-52cp-r559-cp3m, GHSA-5p4m-2wfm-xmqj — CPU-exhaustion DoS on parsing untrusted YAML.

Exposure

Development-only. npm ls js-yaml --omit=dev is empty; both copies are reachable only via eslint -> @eslint/eslintrc and ts-jest -> @jest/transform -> babel-plugin-istanbul -> @istanbuljs/load-nyc-config. Neither ships in the published package, and the only YAML they parse is the repo's own eslint/nyc config. Audit hygiene, not a user-facing exposure — see #2072 for the full assessment.

Change

Both pins bumped to the patched v3-legacy / v4-legacy releases:

"js-yaml@<4":  "3.15.1",
"js-yaml@>=4": "4.3.1"

The patched versions have an identical dependency and bin shape to the ones they replace, so the two lock entries were patched in place (version / resolved / integrity only). Total diff: 8 lines across 2 files, zero transitive churn.

A plain rm -rf node_modules package-lock.json && npm install instead produces a ~2450-line lock diff across 164 packages, including production deps (@modelcontextprotocol/sdk, hono, @hono/node-server 1.x -> 2.x major, jose, ws). That was deliberately avoided — this branch takes security fixes only.

Verification

  • js-yaml no longer appears in npm audit
  • npm run build ✅ · npm run lint ✅ (prettier + eslint)
  • Tests: 539 client + 37 server + 85 CLI, all passing
  • App starts and serves the client (HTTP 200); proxy auth gates correctly (401 without token, 200 with)
  • Full MCP round-trip through the CLI against a live stdio server: tools/list and tools/call both return correctly

Note on branch policy

AGENTS.md directs agents to file an issue rather than open a PR against v1/main. This PR was opened at the explicit direction of a maintainer (@cliffhall), with #2072 filed and tracked on the Inspector V1 board alongside it.

Not included

  • The allowScripts block npm 11.19 writes to package.json (from npm install-scripts deny) is unrelated to this fix and was deliberately left out.
  • npm audit on v1/main currently reports 7 further advisories that postdate this one, several production-reachable in the proxy server (hono, @hono/node-server, ip-address, fast-uri — SSRF / host-confusion class). Being assessed separately; more likely to warrant a v1 release than this.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Gq5jMmxRUphrVbfNbYVmQH

The root `overrides` block pinned js-yaml to versions inside the
advisory range (3.15.0 and 4.2.0), so `npm audit fix` reported a fix
as available and then changed nothing — overrides take precedence.

Bumps both pins to the patched `v3-legacy` / `v4-legacy` releases,
addressing GHSA-52cp-r559-cp3m and GHSA-5p4m-2wfm-xmqj.

Exposure is development-only: `npm ls js-yaml --omit=dev` is empty and
both copies are reachable only via eslint and ts-jest/istanbul, neither
of which ships in the published package.

Both patched versions have an identical dependency and bin shape, so
the lock entries were patched in place — 6 lines, no transitive churn.

Fixes #2072

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Gq5jMmxRUphrVbfNbYVmQH

Copilot AI 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.

Pull request overview

Updates development-only js-yaml overrides to patched releases, resolving #2072 without unrelated dependency churn.

Changes:

  • Bumps legacy 3.x and 4.x override pins.
  • Updates corresponding lockfile metadata and integrity hashes.

Reviewed changes

Copilot reviewed 1 out of 2 changed files in this pull request and generated no comments.

File Description
package.json Pins patched js-yaml versions.
package-lock.json Updates both resolved package entries.

💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file v1

Projects

None yet

Development

Successfully merging this pull request may close these issues.

v1: js-yaml overrides pin vulnerable versions, making npm audit fix a no-op (dev-only exposure)

2 participants