Medium, CVSS 6.8npmAmendedPublished
MCP TypeScript SDK: Server bearer authentication accepted tokens issued for another service
CVE-2026-111771 · GHSA-rvq5-wwqv-78pq
- Affected
- npm @modelcontextprotocol/server-legacy >= 2.0.0, < 2.3.1
- Fixed in
- 2.3.1· Vendor fix available
- Issue
- In affected versions, the SDK's server-side bearer authentication had no way to check that a token was issued for your server (its audience). Where one authorization server issues tokens for several services, a valid token for another service was also accepted by your MCP server. Am I affected? Yes, if your HTTP server uses requireBearerAuth() or verifyBearerToken(), its authorization server also issues tokens for other services, and your verifyAccessToken() does not check the token's audience (aud) itself. Affected versions: - @modelcontextprotocol/sdk 1.6.0 through 1.31.0 - @modelcontextprotocol/server 2.0.0 through 2.2.0 - @modelcontextprotocol/express 2.0.0 through 2.0.1 - @modelcontextprotocol/server-legacy 2.0.0 through 2.3.0 Fix Upgrade to: - 1.x: @modelcontextprotocol/sdk 1.32.0 or later - 2.x: @modelcontextprotocol/server 2.3.0 or later, together with @modelcontextprotocol/express 2.0.2 or later if you use it - @modelcontextprotocol/server-legacy 2.3.1 or later…
Recommended action: Upgrade to 2.3.1 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.