10月8日、The Decoderが「A single prompt was enough to hijack every AI agent in an AWS account, Zenity researchers found」と題した記事を公開した。この記事では、AWSのAIエージェント基盤「Bedrock AgentCore」において、たった1つのプロンプトでアカウント内の全エージェントを乗っ取れる脆弱性チェーンをセキュリティ企業Zenity Labsが発見した件について詳しく紹介されている。
チャット1件で全エージェントが陥落するまで
セキュリティ企業Zenity Labsの研究者は、AWSのエンタープライズ向けAIエージェント実行基盤Amazon Bedrock AgentCoreに対する一連の攻撃手法を発見し、これを「AgentCorruption」と名付けた。
攻撃の起点は、公開されているエージェントへのチャットアクセスだけ。研究者はそこから、同一AWSアカウント・リージョン内の全AgentCoreエージェントを掌握できたと報告している。
IMDSへの直接アクセス:あってはならない穴
攻撃の第一歩は、AWSが内部アドレス 169.254.169.254 で提供する**IMDS(Instance Metadata Service)**の悪用だ。IMDSとは、EC2インスタンスやワークロードが一時的なAWS認証情報を取得するためのクラウド内部サービスで、本来は外部からアクセスできないよう隔離されているべきものだ。
なお、IMDSには旧来のv1と、より安全なIMDSv2の2バージョンが存在する。IMDSv2ではリクエストにセッション指向のTTLヘッダーが必須となり、SSRF(Server-Side Request Forgery)攻撃への耐性が大幅に向上している。今回の脆弱性の一因は、AgentCoreがデフォルトでIMDSv1(ヘッダー不要で容易にアクセスできる旧バージョン)を使用していた点にある。
研究者はAWSがオープンソースで公開しているエージェントフレームワーク**Strands**を使ってテスト用エージェントを構築し、自然言語でIMDSに問い合わせて結果を外部サーバーに送るよう指示した。エージェントはその指示に従った。
「戦うべきはずのサンドボックスの境界が、そもそも存在していなかった」——Zenity Labs
チャット画面への1件のメッセージが、エージェントに自身のAWS認証情報を外部サーバーへ送信させた。| 画像: Zenity Labs
IMDSが返したのはAccessKeyId、SecretAccessKey、セッショントークンを含む一時認証情報の一式だった。さらに、内部AWSサービス向けの証明書・鍵素材や、研究者のアカウントとは無関係の内部S3バケットを指す署名済みURLまで含まれていた。
IMDSはエージェントの完全な一時AWS認証情報を返した。| 画像: Zenity Labs
この認証情報は研究者の手元のマシンからも有効で、以降エージェントへのアクセスすら不要になった。また研究者は、StrandsのWebツールを使わずコマンドラインツール経由でも同じ攻撃が成立することを確認している。これはIMDSへの不正アクセスがStrandsのツール実装に依存した問題ではなく、AgentCoreプラットフォーム自体の分離設計の欠陥であることを示している。
「全エージェントに共通するデフォルトロール」がマスターキーになった
より深刻だったのが、AgentCoreが全エージェントにデフォルトで付与していた広すぎる実行ロールだ。このロールは単一エージェントに限定されず、リージョン内の全エージェントに対して読み取り・書き込み・削除を含む権限を持っていた。
自動スクリプトがリージョン内の全エージェントのコンテナイメージをpullし、ソースコードを取得した。| 画像: Zenity Labs
取得できたコードパッケージには、ハードコードされたパスワードやAPIキーが含まれることも多い。研究者は公開向けカスタマーサポートエージェントから社内の財務エージェントへの横断移動を実証し、そのデータにもアクセスできた。
ユーザーとエージェント間の全会話ログも読み取り可能だった。
取得した認証情報で、リージョン内の任意のエージェントとユーザー間の非公開会話が読み取れた。| 画像: Zenity Labs
長期メモリが有効なエージェントに対しては、そのメモリを直接改ざんして将来の会話を外部に転送させる指示を埋め込むことも可能だった。ユーザー側からは何も変化がないように見える。
認証情報の保護についても、AWSはエージェントとは別に保護されたボルトへの保管を推奨しているが、デフォルトロールがそのボルトへの直接アクセス権も持っていたため、対策が無効化されていた。
AWSの対応:報告から修正まで約8ヶ月
Zenityは2025年12月25日にAWSに報告した。その後AWSは、AgentCoreデプロイメントにおけるデフォルトをIMDSv2(より安全なバージョン)に変更した。デフォルトロールの権限縮小は2026年8月ごろに実施され、他エージェントの呼び出し、会話ログの読み取り、AWS Secrets Managerからの認証情報取得などの権限が削除された。報告から修正完了まで約8ヶ月を要した計算になる。
ただし研究者は、企業が独自のより狭いロールを自分で定義することを今も推奨している。
比較として、OpenAIは類似の脆弱性(後述の「AgentForger」)を4日以内に修正しており、AgentCoreのデフォルト権限が長期間放置されていた点は対照的だ。AgentCoreはすでに一般企業向けに開放されており、AmazonはSonyやEricssonがユーザーとして利用していると述べている。
Zenity CTOのMichael Bargury氏はこう指摘する。「クラウドセキュリティはセグメンテーションと最小権限が基本だ。しかしAIエージェントは有用であるために、ある程度の自由な動作空間が必要になる」。公開向けエージェントと社内エージェントが同一環境を共有している以上、1箇所の穴がシステム全体の境界を崩しうる。
エージェントが組織に牙をむくパターン
AgentCorruptionはZenityが追跡してきた一連の攻撃パターンの一部だ。
- AgentFlayer: ゼロクリック攻撃でSalesforce Einstein、Copilot Studio、CursorのエージェントにデータをリダイレクトさせたりAPIキーを漏洩させたりする手法。
- AgentForger: 改ざんされたChatGPTリンク1件で、承認要件をオフにした自律エージェントをOpenAIのWorkspace Agent内に生成する手法。
エージェントメモリが攻撃ベクタになる点は、研究コミュニティの知見とも一致している。**Google DeepMindが公開したAIエージェントの罠の分類では、長期メモリの操作が独立した攻撃クラスとして位置付けられている。また"Agents of Chaos"**と題した研究では、メモリファイルにリンクされた外部から編集可能なドキュメントを通じてエージェントがリモート制御された事例も報告されている。
OpenAI CEOのSam Altman氏は「エージェントには必要最低限のアクセス権のみを与えるべきだ」と述べており、AgentCoreのデフォルトロールはまさにその原則に反していた。
なお、Zenityは自社でAIエージェント向けセキュリティプラットフォームを販売しており、この分野の欠陥発見に商業的な関心を持つ点は留意が必要だ。
詳細はA single prompt was enough to hijack every AI agent in an AWS account, Zenity researchers foundを参照していただきたい。








