Google’s Vertex AI Vulnerability Enables Low-Privileged Users to Gain Service Agent Roles
2026/01/17 CyberSecurityNews — Google Vertex AI のデフォルト・コンフィグには、低権限ユーザーが Service Agent ロールを乗っ取ることで権限昇格を可能にしてしまう問題が存在する。XM Cyber の研究者により、Vertex AI Agent Engine/Ray on Vertex AI における 2 つの攻撃ベクターが特定されているが、Google はこれらを「想定された動作 (Working as Intended)」と位置付けており、防御責任はユーザー側にあるとの見解を示している。

Service Agent とは、Vertex AI インスタンスの内部処理を目的として Google Cloud が自動的に付与するマネージド ID である。これらのアカウントには、プロジェクト全体に対する広範な権限がデフォルトで付与されており、低権限ユーザーがアクセス可能な状態にある場合、深刻なリスクが生じる。

いわゆる代理者の混乱 (Confused Deputy) シナリオを通じて、この設計が攻撃者により悪用される。その結果として、最小限の権限からのリモートコード実行 (RCE) が実現し、インスタンス・メタデータからの認証情報の窃取が可能となる。いずれの攻撃経路も、開始点は読み取り専用権限であるが、最終的には Cloud Storage (GCS)/BigQuery へのアクセスといった高権限の操作に到達する。Ray on Vertex AI のフローでは、永続リソースへのアクセスから Custom Code Service Agent の侵害に至る一連の流れが確認されている。
| Feature | Vertex AI Agent Engine | Ray on Vertex AI |
|---|---|---|
| Primary Target | Reasoning Engine Service Agent | Custom Code Service Agent |
| Vulnerability Type | Malicious Tool Call (RCE) | Insecure Default Access (Viewer to Root) |
| Initial Permission | aiplatform.reasoningEngines.update | aiplatform.persistentResources.get/list |
| Impact | LLM memories, chats, GCS access | Ray cluster root; BigQuery/GCS R/W |
Agent Engine におけるツール・インジェクション
開発者は、Google の Agent Development Kit (ADK) などのフレームワークを用いて AI エージェントをデプロイする。この際に、Python コードは pickle 化され、GCS バケットにステージングされる。また、”aiplatform.reasoningEngines.update” 権限を有する攻撃者は、通貨換算関数を装うリバース・シェルなどの、偽装されたツールを介して悪意のコードをアップロードできる。

それらのツールを何らかのクエリがトリガーすると、Reasoning Engine インスタンス上でシェルが実行される。その後に攻撃者は、メタデータを参照して Reasoning Engine Service Agent のトークン “service-<project>@gcp-sa-aiplatform-re.iam.gserviceaccount.com” を取得し、メモリ/セッション/ストレージ/ログに対する権限を獲得する。
これにより、チャット内容/LLMデータ/GCSバケットの読み取りが可能となる。XM Cyber によると、公開バケットはステージング用として機能するため、追加のストレージ権限は必要とされない。
Ray on Vertex AI における権限昇格
スケーラブルな AI ワークロード向けの Ray クラスターでは、Custom Code Service Agent がヘッドノードに自動的に付与される。それにより、Vertex AI Viewer ロールに含まれる aiplatform.persistentResources.list/get 権限を持つユーザーは、GCP Console 上の “Head node interactive shell” リンクにアクセスできる。
この結果として、Viewer 権限でありながら root シェルへのアクセスが可能となる。攻撃者はメタデータ経由で Service Agent トークンを抽出し、GCS/BigQuery の読み書き権限を取得できる。テスト環境では signBlob などの IAM 操作はスコープ制限されていたが、ストレージ/ログへの影響が確認されている。
対策として挙げられるのは、不要な Service Agent 権限のカスタム・ロールからの削減/ヘッドノードのシェルの無効化/ツール更新時のコード検証の厳格化となる。また、Security Command Center の Agent Engine Threat Detection を活用して、メタデータへのアクセスを監視することで、RCE やトークン取得を検知できる。それに加えて、永続リソースおよび Reasoning Engine を定期的に監査することが重要となる。Vertex AI を導入する企業は、これらのデフォルト・コンフィグを “機能” ではなく “リスク” として認識すべきである。
Google Cloud の AI サービス Vertex AI において、低権限のユーザーが管理用アカウントを乗っ取り、環境全体を操作できてしまうというリスクが見つかりました。この問題の原因は、システムが裏側で自動的に作成する Service Agent というアカウントに、デフォルトで過剰な権限が与えられていることにあります。攻撃者は AI に偽の命令を読み込ませ、管理画面の特定の接続機能を悪用することで、この管理用アカウントになりすますことができます。その結果、本来は参照だけを許されているユーザーであっても、クラウド上のストレージやデータベースの機密情報を自由に読み書きできるようになってしまいます。Google は、この挙動を「サービスの仕様」としており、プログラムの不備とはみなしていません。そのため、利用する側での不要な権限の削除や、不審なアクセスを監視するといった自衛策が必要となります。ご利用のチームはご注意ください。

You must be logged in to post a comment.