MCP WebSocketは、ループバックインターフェース(127.0.0.1)からのすべてのトラフィックを無条件に信頼していました。そのリクエストが正当なエージェントから来たのか、それともエージェントが表示した攻撃者制御のWebコンテンツから来たのかを検証しなかったのです 。エージェント自体がローカルで実行されるため、エージェントが読み込んだWebページは、MCPサービスが「信頼できるローカル発信元」と見なすWebSocketメッセージを送信できました。
MCP WebSocketエンドポイントは、認証、セッショントークン、生成元(Origin)チェックを一切必要としませんでした。ローカルの任意のプロセス、あるいはエージェントが表示したWebページ内で動作するスクリプトであれば、資格情報なしでこのWebSocketに到達し、コマンドを送信できました 。つまり、正当なエージェントのツール呼び出しと、攻撃者のWebページによって注入された悪意ある命令を、サービスが区別する方法がなかったのです。
MCPサービスは、WebSocket経由で受信したツールコマンドを盲目的に実行していました。サンドボックス化、機能チェック、ユーザー確認なしで、任意のプロセス作成を許可していました 。攻撃者のコンテンツがWebSocketに到達すると、ホスト上で任意のコマンドを実行するようサービスに指示できました。
これらの3つの弱点が組み合わさることで、WebページがAIエージェントのブラウジングエンジンに指示を出し、MCP WebSocketに接続させ、細工されたツールコマンドを送信させ、任意のコードを実行させることが可能になります。これらはすべて、ユーザーが2回目のクリックをする必要なく行われます 。
この脆弱性は、AutoGen Studioの開発ブランチにのみ存在していました 。これはAutoGenマルチエージェントフレームワークのプロトタイピング用UIであり、AutoGen StudioやAutoGen自体のPyPIリリースに含まれることはありませんでした
。Microsoftはこの問題をMicrosoft Security Response Center(MSRC)を通じてAutoGenのメンテナーに報告し、その後、修正が開発ブランチに適用されました
。ユーザーは最新バージョンのAutoGen Studioにアップデートし、パッチを適用することが推奨されます
。現時点のソースでは、この問題に対するCVE番号は報告されていません。
Microsoftは、特定の脆弱性を超えて、AutoJackがWebブラウジングとローカルツールアクセスを組み合わせた、あらゆるエージェント型AIフレームワークに内在するアーキテクチャ上のリスクを示していると強調しています 。ブラウザのサンドボックスは、Webコンテンツをオペレーティングシステムから隔離するように設計されていました。しかし、信頼境界の内側に位置し、表示したコンテンツに基づいて動作するAIエージェントは、オープンなWebから特権的なローカル操作への橋渡し役となります
。
Microsoftは、localhostを安全な暗黙の信頼ゾーンとして扱う従来の前提は、エージェントが関わる場合にはもはや通用しないと警告しています 。同社は、エージェント型AIフレームワークが以下の対策を採用することを推奨しています。
localhostはかつて安全境界でした。AIエージェントがオープンなWebを閲覧する現代において、それは攻撃対象となりつつあります。
Comments
0 comments