脆弱性  ·  2026-10-07

MCP TypeScript SDK OAuth資格情報リダイレクト — 悪意のあるMCPサーバーがユーザー操作なしでrefresh_token/client_secretを盗む

脆弱性High 影響度GlobalCVE-2026-104850
公式MCP TypeScript SDKでは、OAuthクライアントは、クライアントが接続したMCPサーバーが、クライアントのOAuth資格情報を受け取る認証サーバーを決定できるようにしていました。保存済み/事前プロビジョニング済みの資格情報は、それらが属する認証サーバーにバインドされていませんでした(CWE-345/CWE-522)。悪意のある、または侵害されたMCPサーバーは、保護リソースメタデータで独自の認証サーバーを指定でき、ユーザー操作なしで、被害者の保存された`refresh_token`と`client_secret`(1.x)、またはバンドルされた非対話型プロバイダーの設定済み`client_secret`/署名付きアサーション(1.xおよび2.x)を受け取ることができます。SDK 1.31.0および@modelcontextprotocol/client 2.2.0で修正されました。
これはModel Context ProtocolのリファレンスSDKです — エージェントAIの結合組織です。自動化可能(UIなし、ユーザー確認なし)であるため、正当なプロバイダーのOAuth資格情報を保持しながら信頼できない、または侵害されたMCPサーバーに接続するエージェントは、サイレントに長期有効なトークンを渡し、エージェントスタック全体でのアカウント/API乗っ取りを可能にします。信頼できる発行者のバインディングギャップは、エコシステムのコアクライアントライブラリにおける構造的なOAuth統合の欠陥です。
エージェントが攻撃者が制御する/侵害されたMCPサーバーに接続します。サーバーはリソースメタデータで独自の認証サーバーをアドバタイズします。SDKは、次のトークン更新時に保存されたrefresh_token + client_secretをそのエンドポイントに送信します。
@modelcontextprotocol/sdk >= 1.12.0、< 1.31.0(1.x); @modelcontextprotocol/client >= 2.0.0、< 2.2.0(2.x)
@modelcontextprotocol/sdk 1.31.0または@modelcontextprotocol/client 2.2.0にアップグレードします。1.xでは、OAuth対応クライアントを信頼できるMCPサーバーにのみ接続します(回避策)。
NVD CVE-2026-104850GitHub advisory GHSA-6qxp-vccf-f47hGitLab advisory CVE-2026-104850MCP SDK fix commit
ライブフィードで見る AIセキュリティとガバナンスの関連情報をさらに見る — 毎朝更新。
フィードを開く →