AI エージェント間通信の標準プロトコルとして広く採用されているModel Context Protocol(MCP)に、設計段階から組み込まれた深刻な脆弱性が発見された。セキュリティ研究企業Ox Securityが4月15日に公開したレポートによると、この脆弱性により攻撃者は脆弱なシステム上で任意のコマンドを実行できるという。
1.5億ダウンロードに影響する設計上の欠陥
Ox Securityの調査では、この脆弱性が200のオープンソースプロジェクト、1.5億回のダウンロード、7000台以上の公開サーバーに影響を与える可能性があることが判明した。研究者らは最大で20万のインスタンスが脆弱性の影響を受ける可能性があると推定している。
問題の根源は、MCPが提供する2つのトランスポートインターフェースの1つであるSTDIO(Standard Input/Output)接続にある。STDIOではクライアントアプリケーションがMCPサーバーをサブプロセスとして起動し、パラメータを渡すことができる。これらのパラメータには親プロセスの権限でシステム上で実行される任意のコマンドを含めることが可能だ。
Ox Securityの研究者は「CSO Onlineの報告によると、攻撃者がMCPサーバー設定のネットワークリクエストを細工し、設定JSONのトランスポートタイプをSSEやHTTPの代わりにSTDIOタイプに変更し、リクエストのペイロードに任意のコマンドを追加することで、リモートコマンド実行を達成できる」と説明している。
プロンプトインジェクションによる追加攻撃ベクター
脆弱性はSTDIO接続だけでなく、プロンプトインジェクションを通じた悪意のあるMCP設定の生成でも悪用される可能性がある。ほとんどの統合開発環境(IDE)では、MCP設定ファイルを変更する前にユーザーに確認を求めるが、WindsurfというIDEはデフォルトでMCP設定を直接変更するため、ユーザーの操作なしでコマンドインジェクション攻撃が可能になっていた。
この攻撃により、攻撃者は機密ユーザーデータ、内部データベース、APIキー、チャット履歴にアクセスできる可能性がある。Infosecurity Magazineの報道によると、Ox Securityは「これは従来のコーディングエラーではない」と警告し、「Python、TypeScript、Java、Rustを含むサポートされているすべてのプログラミング言語で、AnthropicのオフィシャルMCP SDKに組み込まれたアーキテクチャ設計上の決定である」と述べている。
Anthropicの対応とセキュリティ責任の議論
重要な点として、Anthropicはこの動作が設計仕様であることを確認し、プロトコルの修正を拒否している。同社は「STDIO実行モデルは安全なデフォルトを表し、サニタイゼーションは開発者の責任である」と述べている。これに対しOx Securityは、セキュリティの責任を開発者に押し付ける代わりに、コードが実行されるインフラストラクチャを保護することが重要だと反論している。
コミュニティのセキュリティに関する実績を考慮すると、この責任転嫁は危険だと同社は主張している。実際、Ox Securityは30以上の責任ある開示を行い、10以上の高または重大度のCVE(共通脆弱性識別子)を発見し、個別のオープンソースプロジェクトのパッチ適用を支援している。
MCPの普及とAIサプライチェーンへの影響
MCPは2024年11月にAnthropicによって導入され、AIモデルが外部データやシステムに接続するためのオープンソース標準として急速に普及している。SecurityWeekの報告によると、エージェントAIユーザーにとって大きな恩恵をもたらしており、独自のコネクタ開発の負担を軽減するため、企業で内部的に広く使用され信頼されている。
MCPは、アプリケーションがLLMにデータソースとツールを公開するための標準化された方法を提供し、自動化されたワークフローを完了する際のコンテキストと効果性を向上させる。しかし、この広範囲にわたる採用が、今回発見された脆弱性の影響範囲を大幅に拡大している。
推奨される対策と今後の展望
Ox Securityのレポートでは、Anthropicがこの問題を解決するために、サニタイゼーションされていないSTDIO接続の廃止、プロトコルレベルでのコマンドサンドボックス化の導入、「危険モード」の明示的なオプトイン機能の実装、セキュリティマニフェストを含む標準化されたマーケットプレース検証基準の開発などの詳細な解決策を提示している。
現時点では、エージェントAI開発の一環としてSTDIO MCPを採用する企業は「注意深く」行うべきだと専門家は警告している。代替案として、リモートMCPサーバーやウェブサービスで通常使用されるServer-Sent Events(SSE)を使用したStreamable HTTP接続の採用が推奨されている。これらの接続方式では、STDIO特有のコマンド実行リスクを回避できる。
AIエージェント通信技術の急速な発展と普及により、セキュリティ設計の重要性が改めて浮き彫りになった今回の事例は、AI開発におけるセキュリティファーストの設計思想の必要性を強く示している。



