Asayomu Tech
注目★★★★★GitHub Advisory

MCP Python SDK の WebSocket サーバ、Host/Origin 検証がなくクロスオリジン接続可能

30秒で把握

  • 1MCP Python SDK の deprecated WebSocket トランスポートが Host/Origin ヘッダ検証なし
  • 2クロスオリジン接続が可能となり、ブラウザベースの攻撃でサーバが到達可能になる可能性
  • 3ASGI アプリケーションに websocket_server を直接統合した場合のみ対象・stdio/SSE/HTTP は非該当

要約

MCP Python SDK の WebSocket サーバトランスポート (`mcp.server.websocket.websocket_server`) は、ホストヘッダとオリジンヘッダの検証を行わずに WebSocket ハンドシェイクを受け入れていた。SSE や Streamable HTTP トランスポートが使用する `TransportSecuritySettings` メカニズムが WebSocket トランスポートに実装されていなかったため、接続元オリジンを制限する SDK レベルの手段がなかった。ブラウザがクロスオリジン WebSocket リクエストに Origin ヘッダを付与する一方で応答に同一オリジンポリシーを強制しないため、任意のオリジンから到達可能な MCP サーバへの接続が可能だった。このトランスポートは MCP 仕様の一部ではなく deprecated 扱いで、FastMCP 経由では使用できないが、ASGI アプリケーションに直接統合する開発者が対象となる。

あなたへの影響

本体の stdio / SSE / Streamable HTTP トランスポートを使用していればこの脆弱性の影響は受けません。

推奨:WebSocket サーバトランスポートを自前で ASGI アプリケーションに統合している場合は、影響を確認し、必要に応じてアップデートまたはオリジン検証の手動追加を検討してください。

詳細を読む → 元記事へ※ 本文は元記事をご確認ください (asayomu は要約のみ提供)

関連する記事

※ 外部記事の権利は原著作者に帰属します。著作権削除要請は copyright@asayomu.jp までご連絡ください(受領確認 24h・実処理 72h 以内)。