Skip to content

fix: refresh @modelcontextprotocol/sdk for GHSA-6qxp-vccf-f47h - #27

Merged
SergioTCG merged 1 commit into
mainfrom
fix/mcp-sdk-advisory
Oct 7, 2026
Merged

SergioTCG merged 1 commit into
mainfrom
fix/mcp-sdk-advisory

Conversation

@SergioTCG

Copy link
Copy Markdown
Owner

Summary

npm audit --omit=dev now fails CI on every run, main included, because of a newly published high-severity advisory: GHSA-6qxp-vccf-f47h. In @modelcontextprotocol/sdk 1.12.0–1.30.1, the OAuth client could send credentials to an authorization server chosen by the MCP server.

This lockfile-only change pins the SDK to 1.31.0, the first patched release. The package.json range ^1.30.0 is unchanged, so this works like #25.

Runtime exposure: none. SAB uses only the SDK's stdio Server (channel/server.mjs), never the OAuth client. The upstream changes in 1.30.1 and 1.31.0 touch only the OAuth client and the HTTP transport's body limits. The fix is needed to unblock CI for #26.

Validation

  • npm audit --omit=dev: 0 vulnerabilities.
  • npm test: 564 pass. npm run check: pass.
  • Channel-server smoke test on 1.31.0. This ran the real channel/server.mjs with only its daemon address redirected to a local fake daemon, driven by an MCP client:
    • the handshake advertises claude/channel and claude/channel/permission;
    • an SSE Slack message arrives as notifications/claude/channel;
    • a permission_request notification is relayed to /permission-request.

Deployment notes

  • The self-updater only reinstalls dependencies when package.json changes. Installs therefore keep 1.30.0 on disk until they run npm ci --omit=dev.
  • Already-running channel servers keep their loaded SDK. New and resumed sessions pick up 1.31.0.

🤖 Generated with Claude Code

https://claude.ai/code/session_011Xs8AVBVrTGfpzUMiCQp2R

npm audit now reports a high-severity advisory for @modelcontextprotocol/sdk
1.12.0–1.30.1: the OAuth client could send credentials to an authorization
server chosen by the MCP server. CI's production-dependency audit therefore
fails on every run, main included.

Pin the lockfile to 1.31.0, the first patched release; package.json's
^1.30.0 range is unchanged. Upstream, 1.30.1 and 1.31.0 change only the
OAuth client and the HTTP transport's body limits. SAB uses only the stdio
Server, so the vulnerable path was never loaded.

Validated:
- npm audit reports 0 vulnerabilities, npm test passes (564), and npm run
  check passes.
- An end-to-end smoke test ran the real channel/server.mjs on 1.31.0
  against a local fake daemon. It covered the MCP handshake with both
  claude/channel capabilities, an SSE message delivered as
  notifications/claude/channel, and a permission request relayed to the
  daemon.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011Xs8AVBVrTGfpzUMiCQp2R
@SergioTCG
SergioTCG merged commit 520fad9 into main Oct 7, 2026
3 checks passed
@SergioTCG
SergioTCG deleted the fix/mcp-sdk-advisory branch October 25, 2026 21:36
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