何が起きたか
MCP Python SDK のレガシー WebSocket トランスポートは、どのオリジンが接続を確立できるかを制限するためのあらゆる SDK レベルのメカニズムを欠いており、ローカル MCP サーバーをブラウザベースのクロスオリジン攻撃に公開しました。
なぜ重要か
これはエージェント的ツールサーバーに適用される古典的なクロスサイト WebSocket ハイジャッキングパターンです。悪意あるウェブページは、ローカルで実行されている MCP サーバー(例えば開発者のコーディングエージェントに配線されているもの)に対して接続でき、コマンドを実行でき、通常のウェブブラウジングをツール呼び出し悪用へのパスに変える可能性があります。
攻撃経路
非推奨の mcp.server.websocket.websocket_server トランスポートは Host または Origin ヘッダーを検証せずに WebSocket ハンドシェークを受け入れ、被害者のブラウザが訪問するあらゆるウェブサイトは、ローカルで実行されている MCP サーバーへの WebSocket 接続を開き、承認されたクライアントであるかのようにそれと相互作用できることを意味しました。
影響を受けるシステム
MCP Python SDK(PyPI の mcp)1.28.1 前
緩和策
MCP Python SDK 1.28.1 以降にアップグレードしてください。非推奨の websocket トランスポートを避けてください。