技術的な説明
バージョン 1.4.0 以前の rmcp クレート (Model Context Protocol の公式 Rust SDK) の 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 以降にアップグレードしてください。このバージョンでは DNS リバインディング攻撃を防ぐために Host ヘッダー検証が導入されています。MCP サーバーが localhost 以外のネットワークインターフェースに不注意で公開されていないことを確認するために、サーバー設定を確認してください。本番環境で MCP サーバーをデプロイしている組織は、疑わしいクロスオリジンリクエストについてアクセスログを監査し、Host ヘッダーチェック以外のクライアント認証メカニズムが実装されていることを確認する必要があります。