何が起きたか
Google ADK for JavaのADK Web開発サーバーは、任意のオリジンからWebSocketおよびRESTリクエストを受け入れ、認証を備えていませんでした。サーバーはlocalhostにバインドされていますが、リクエストは開発者のブラウザから発信されるため、悪意のあるページがローカルで実行中のエージェントを制御し、そのツールを呼び出し、セッションやアーティファクトを読み取りまたは変更できます。1.13.0で修正されました。CVSS 7.2、公開日2026-10-23。
なぜ重要か
ブラウザからlocalhostへのエージェント乗っ取り: 開発中に開発者が訪れる任意のページによって静かに制御可能な開発サーバーを持つAIエージェントフレームワーク。エージェントは開発者の権限とコンテキストでツールを実行するため、エージェント自身のコードに触れることなく、ツールの誤用、セッション/アーティファクトの窃取、不正なエージェントアクションが可能になります。
攻撃経路
/run_live WebSocketエンドポイントは任意のオリジンからの接続を受け入れます(≤1.5.0ではハードコードされたsetAllowedOrigins("*")、1.6.0–1.12.0ではadk.web.cors.originsを介したデフォルト*)。REST APIはデフォルトでAccess-Control-Allow-Origin: *を返します。サーバーには認証がなく、リクエストは開発者のブラウザから発信されるため、クロスオリジンページはエージェントにメッセージを送信し、ツールをトリガーし、応答をストリームし、セッションとアーティファクトを読み取り/管理できます。1.6.0–1.12.0では、adk.web.cors.originsを明示的な許可リストに設定してください。
影響を受けるシステム
com.google.adk:google-adk-dev 0.1.0から1.13.0未満; com.google.adk:google-adk-maven-plugin 0.3.0から1.13.0未満
緩和策
google-adk-java 1.13.0へアップグレードしてください(CORSと/run_liveに対して同一オリジンデフォルトを強制し、ループバック上のDNSリバインディングを拒否します)。1.6.0–1.12.0では、adk.web.cors.originsを信頼されたオリジンの明示的な許可リストに設定してください。開発エージェントサーバーが実行されている間はブラウジングしないでください。