何が起きたか
アドバイザリ由来のカバレッジ(secalerts/insightcve、10月20日公開)で検証済み: CVE-2026-111770 (CVSS 7.7) は、MCPサーバー応答ルーティングにおける競合/所有権の欠陥です — JSON-RPC idのみでメッセージをマッチングするため、あるクライアントの応答と通知が別のクライアントに配信されます。同じアドバイザリウェーブには、リクエストボディのメモリ枯渇 (CVE-2026-111768)、オーディエンスチェックなしのベアラー認証 (CVE-2026-111771)、セッションにバインドされていない実験的タスク (CVE-2026-111767、以前に個別にカバー済み)、refresh_token/client_secretを転送しながらクロスオリジンリダイレクトに従うクライアントトランスポート (CVE-2026-111769) も含まれていました。
なぜ重要か
MCPは、エージェント、ツール、モデルゲートウェイ間の標準的な配線です。公式サーバーSDKのサイレントなクロスクライアント配信バグは、あるユーザーのエージェントツールトラフィック(クエリ、ツール出力、潜在的に資格情報)が、共有MCPゲートウェイ上の別のユーザーのセッションに到達する可能性があることを意味します — コアエージェントプロトコルSDKにおけるクロステナントの機密性侵害です。
攻撃経路
共有HTTPマップトランスポート/サーバーインスタンスに対する並行インフライトリクエストを持つ2つのクライアント; SDKはJSON-RPC idのみでメッセージをコネクションにマッチングし、SDKクライアントはリクエストを0から番号付けするため、通常の使用でidが衝突します — 巧妙なidは不要です。応答と通知はサイレントにクロス配信されます。
影響を受けるシステム
@modelcontextprotocol/server (MCP TypeScriptサーバーSDK) 2.0.0 – 2.2.0; 2.3.0で修正(@modelcontextprotocol/sdkの問題を1.32.0で修正した10月20日のMCP SDKアドバイザリウェーブの一部でもあります)
緩和策
@modelcontextprotocol/server 2.3.0以上にアップグレードし、アプリをリファクタリングしてセッションごとに新しいサーバーを作成してください(例: createMcpHandler() ファクトリ); アップグレード後、共有インスタンスアプリはALREADY_CONNECTEDで大きく失敗します — これが意図された診断です。アドバイザリ GHSA-jm63-cq47-j5jp; 修正コミット 84804c22e45a662675a198f853b7f00063838a8d。