技術的な説明
Model Context Protocol の公式 Rust SDK である rmcp クレートは、バージョン 1.4.0 より前において、Streamable HTTP サーバートランスポート (crates/rmcp/src/transport/streamable_http_server/) の受信 Host ヘッダーを検証していませんでした。これにより、悪意のある公開ウェブサイトが localhost にバインドされた MCP サーバーに対して DNS リバインディング攻撃を実行し、信頼できるローカルクライアントから発信されたかのようにサーバーが処理するクロスオリジンリクエストを送信することが可能でした。NVD は 2026年5月14日に CVE-2026-42559 を公開し、CVSS 4.0 基本スコアは 8.8 (高度な重大度) です。
攻撃経路
DNS リバインディング攻撃。攻撃者が悪意のあるウェブサイトをホストし、ユーザーがブラウザで訪問します。攻撃者の JavaScript コードが DNS リバインディングを実行して、ユーザーのブラウザが MCP サーバーがリッスンしている 127.0.0.1 または localhost アドレスに HTTP リクエストを送信するようにします。rmcp クレートが Host ヘッダーを検証しなかったため、MCP サーバーはこれらのクロスオリジンリクエストを受け入れて処理し、攻撃者が正当なローカル MCP クライアントからのリクエストのように MCP ツールを呼び出したり、リソースにアクセスしたり、プロンプトを操作したりすることができました。
影響を受けるシステム
バージョン 1.4.0 より前の rmcp クレート (公式 Model Context Protocol Rust SDK) を使用する Rust ベースの MCP サーバー実装。これは localhost をリッスンし rmcp Streamable HTTP トランスポートを使用する任意の MCP サーバーに影響します。rmcp クレートを使用して MCP サーバーを構築する開発者は、以前のデプロイメントがクロスオリジン攻撃に対して悪意のあるウェブサイトから脆弱であったと考えるべきです。
緩和策
rmcp クレート バージョン 1.4.0 以降にアップグレードしてください。このバージョンでは Host ヘッダー検証が導入され、DNS リバインディング攻撃を防止します。サーバー構成を確認して、MCP サーバーが localhost を超えるネットワークインターフェースに不用意にさらされていないことを確認してください。本番環境に MCP サーバーをデプロイしている組織は、疑わしいクロスオリジンリクエストに関するアクセスログを監査し、Host ヘッダーチェックを超えてクライアント認証メカニズムが適用されていることを確認する必要があります。