何が起きたか
MCP TypeScript SDKのサーバーサイドベアラー認証はOAuthトークンオーディエンスを強制しなかったため、別のサービス用に発行された有効なトークンが受け入れられます。マルチサービスデプロイメントでは、あるサービス用のトークンを保持する攻撃者が、権限のある呼び出し元としてMCPサーバーに認証できます。
なぜ重要か
MCPサーバーは、単一の認証サーバーが複数のサービスにわたってトークンを発行する共有OAuthエコシステムで頻繁に展開されます。オーディエンスチェックの欠如により、別のサービス向けのトークンがMCPツールを解除でき、エージェントツール表面への認証バイパス経路が生じます。
攻撃経路
サーバーサイドHTTPベアラー認証は、SDKがトークンオーディエンスを強制しないため、別のサービス用に発行された有効なアクセストークンを受け入れます。別のサービス用のトークンを保持する呼び出し元はMCPサーバーに認証でき、認証された呼び出し元に付与される機密性と完全性の能力を得ることができます。
影響を受けるシステム
@modelcontextprotocol/sdk >= 1.6.0, < 1.32.0; @modelcontextprotocol/server >= 2.0.0, < 2.3.0; @modelcontextprotocol/express >= 2.0.0, < 2.0.2; @modelcontextprotocol/server-legacy >= 2.0.0, < 2.3.1
緩和策
@modelcontextprotocol/sdk 1.32.0 / server 2.3.0 / express 2.0.2 / server-legacy 2.3.1にアップグレードし、その後オーディエンス検証を有効にし、期待されるトークンオーディエンスを提供してください(アップグレードだけでは新しい検証が無効のままです)。アドバイザリ: https://github.com/modelcontextprotocol/typescript-sdk/security/advisories/GHSA-rvq5-wwqv-78pq