Amazon Bedrock AgentCoreのエージェント掌握の報告
- カテゴリ
- AI関連
Zenity Labsが2026年10月8日に公表した研究「AgentCorruption」によると、Amazon Bedrock AgentCoreで公開されたエージェント1つへの単一のプロンプトから、研究者は同じAWSアカウント・リージョンの全AgentCoreエージェントを掌握した[1]。AWSは報道機関への声明で、研究は想定どおりの文書化された挙動を不正確に脆弱性として描いていると述べた[7、8]。
報告の内容
開発元AWSの文書によると、microVM Metadata Service(MMDS)は、VMの中で動くあらゆるコードに実行ロールの認証情報を渡す[11]。AgentCore Browser、Code Interpreter、Runtimeの実行基盤はMMDSで認証情報を得ており、これは実行のネットワークモードにかかわらない[12]。文書は、VMの中のコードや行為者は誰でもメタデータのエンドポイントからこの認証情報を取れるとして、実行ロールの権限を慎重に設定するよう求めている[11、12]。
実行ロールの認証情報の取得
Zenity Labsは、公開のAgentCoreエージェントにプロンプトを送り、AWSのインスタンスメタデータサービス(IMDS)へのアクセスを指示した[1]。エージェントは、外部への要求を出せる一般的なツールを備えていた[1]。Zenity Labsは概説の記事で、IMDSを、ワークロードに割り当てたIAMロールの一時的な認証情報を返す局所のサービスと説明した[2]。
Zenity Labsの概説の記事では、デプロイしたAgentCoreエージェントはFirecrackerのMicroVMの中で動く[2]。MicroVMは十分なネットワーク分離をしておらず、HTTP要求を出せるツールは要求をインスタンスそのものから送った[2]。Zenityはこれをサーバーサイドリクエストフォージェリ(SSRF)の手段と位置づけ、単純なプロンプトインジェクションで足りたと記した[2]。
Zenity Labsは試験の記事で、AWSのオープンソースのStrands SDKでエージェントを作り、組み込みのツールshellとhttp_requestを有効にしたと説明した[3]。AgentCore Runtimeは実行のたびに使い捨てのmicroVMを起動する[3]。平易な言葉でメタデータのエンドポイントの取得を頼むと成功し、microVMはメタデータサービスへの通信を制限していなかった[3]。
同じ記事では、返った一時的なSTSの認証情報(アクセスキーID、シークレットアクセスキー、セッショントークン)はエージェントの実行ロールのものだった[3]。研究者は、AgentCoreの外の自分の端末でこの認証情報が有効なことを確かめた[3]。Zenity Labsは、分離の欠如はツールでなく基盤の水準の問題だとし、Strandsの組み込みのshellツールなど複数のツールで同じ結果を再現した[3]。
アカウント内への広がり
Zenity Labsは、取得した認証情報が既定のIAMロールのものだったと説明した[1]。その権限は元のエージェントに限られず、同じアカウント・リージョンの全AgentCoreエージェントに及んだ[1]。
Zenity Labsの概説の記事では、既定のAgentCoreのロールは特定のエージェントに範囲を絞っておらず、リージョン内の全AgentCoreリソースに広い権限を持っていた[2]。
| 権限 | Zenity Labsが示した使い道 | 資料 |
|---|---|---|
| DescribeLogGroups | リージョン内の全エージェントとそのIDの発見 | [2] |
| bedrock-agentcore:InvokeAgentRuntime | 同じアカウント・リージョンの任意のAgentCoreエージェントの呼び出し | [2] |
| bedrock-agentcore:ListEventsなど | 全エージェント・利用者・セッションの非公開の会話の読み取り | [2] |
| BedrockAgentCoreMemoryへのbedrock-agentcore:CreateEvent | 長期記憶を有効にしたリージョン内の任意のエージェントへの持続的な足場 | [2] |
| bedrock-agentcore:CreateEvent | 特定のセッションにASSISTANTの役割のイベントを差し込み、エージェントに自らの思考として扱わせうる | [4] |
| bedrock-agentcore:DeleteEvent | ツールの結果のイベントを消してエージェントに誤った結論を出させる、痕跡を消す | [4] |
| bedrock-agentcore:GetResourceApiKey、secretsmanager:GetSecretValue | AgentCoreがエージェントから遠ざけるはずの全認証情報への接触 | [2] |
| ECRのイメージの取得 | リージョン内の任意のECRイメージの取得(AgentCoreのECRリポジトリ名はエージェントのIDと一致) | [2] |
長期記憶と認証情報の悪用
Zenity Labsは概説の記事で、IMDSの認証情報でAPIに直接要求を送り、別のエージェント・利用者に新しい記憶を作れたと説明した[2]。この記憶で、以後のセッションでのエージェントの振る舞いと目的を持続的に変えられた[2]。Zenity Labsの発表は、以後の会話を攻撃者の管理する宛先に送らせる悪意のある記憶を、研究者がエージェントに埋め込んだと書いた[1]。
Zenity Labsの記憶の記事では、記憶に埋めた指示で、エージェントは回答の前にHTTPツールで研究者のC2のページを取得した[5]。そのページは、利用者のメッセージとエージェントの応答を研究者の収集先へ送るよう指示した[5]。C2のページの指示を変えれば、新しい記憶を埋めずに以後のやりとりを向け直せた[5]。
Zenity Labsは概説の記事で、AgentCoreが外部ツールの認証情報をAgentCore IdentityとAWS Secrets Managerに保存する形を推奨していると説明した[2]。エージェントが外部ツールを呼ぶときは、AgentCore Gatewayが認証を引き受ける[2]。Zenity Labsは認証情報の記事で、エージェントとAgentCoreのゲートウェイが使う認証情報とAPIキーを集めたと説明した[6]。手段はソースコードの走査、環境変数の読み取り、総当たりの列挙で、その多くは既定の実行ロールにあったSecrets Managerへの直接のアクセスを許す1つの権限によるものだった[6]。
時系列
| 日付 | 主体 | 内容 | 資料 |
|---|---|---|---|
| 2025年 | AWS | Amazon Bedrock AgentCoreの一般提供を始めた | [13] |
| 2025年 | Zenity Labs | IMDSへのアクセスの脆弱性をAWSに報告した〔注1〕 | [1、2] |
| 2026年 | Zenity Labs | 既定のロールの過大な権限と、それによる影響範囲をAWSに報告した | [2] |
| 2026年 | AWS | AgentCoreをIMDSv2〔注2〕だけを使う形にし、新しくデプロイするエージェントはすべてIMDSv2で起動していた(4月12日の回答による) | [2] |
| 2026年 | AWS | 根本の問題に取り組んでいると連絡した(既定のIAMロールは変わらなかった) | [2] |
| 2026年 | AWS | 1件目の報告に回答し、AgentCoreのIMDSの挙動を改善したと伝えて「informative」として閉じた | [2] |
| 2026年 | Zenity Labs | 公表前の最終確認で、既定の実行ロールの大幅な変更を観測した | [2] |
| 2026年 | Zenity Labs | AgentCorruptionを公表し、トロントのSecTor 2026で発表した | [1] |
| 2026年 | AWS | The Next Webに声明を送った | [7] |
| 2026年 | Zenity、AWS | THE DECODERに声明を出した | [8] |
根拠と範囲
Zenityは、脆弱性はAgentCoreに系統的なもので、組み込みのツールを備えたエージェントにAWSアカウントを問わず影響したと説明した[1]。概説の記事は、攻撃者に要るのは公開されたエージェント1つへのチャットのアクセスだけだったと書いた[2]。
Zenity Labsの発表では、研究者は権限の無い社内向けエージェントにアクセスできた[1]。ソースコード、長期記憶、APIキー、OAuthトークンなどAWS Secrets Managerに保存された認証情報にも届いた[1]。
AWSは一般提供の告知で、Amazon Bedrock AgentCoreを東京を含む9つのAWSリージョンで使えるとした[13]。
関係者の対応
Zenity Labsの発表によると、開示の後、AWSはAgentCoreのデプロイでIMDSv2を既定にした[1]。Zenity Labsは試験で、既定の実行ロールの権限が縮小されたことを確かめた[1]。外れた権限には、他のエージェントの呼び出し、非公開の会話の読み取り、Secrets Managerのシークレットへのアクセスを許すものが含まれる[1]。Zenityは概説の記事で、記事に書いたセキュリティ上の問題はすべてAWSのセキュリティチームが修正し、根本の問題にも対処したと記した[2]。
AWSは、Zenityの記事に載った声明で、記述された挙動は文書化された想定どおりのものだと説明した[2]。AgentCoreのエージェントは、メタデータサービスを通じて自らの実行ロールの認証情報にアクセスできるとした[2]。別のAWSアカウントのリソースに届くのは、開発者がエージェントの実行ロールと対象のリソースの両方で明示的に権限を与えたときだけだと述べた[2]。実行ロールにはエージェントに要る権限だけを与えるよう、顧客に推奨した[2]。
AWSの開発者ガイドでは、6月30日からエージェントの実行環境はMMDSv2を有効にしなければならない[11]。有効でない実行環境は呼び出せず、ValidationExceptionを返す[11]。AgentCore CLIが作る実行ロールは、既定でアカウント内の全基盤モデルと推論プロファイルの呼び出しを許す[11]。ガイドは、本番では最小権限の実行ロールを作るよう求めている[11]。
ZenityはTHE DECODERへの声明で、脆弱性はアカウントの境界を越えておらず、完全に緩和されたと述べた[8]。AgentCoreのエージェントを脆弱にした設定の誤りと安全でない既定値の修正について、AWSに謝意を示した[8]。
The Next Webは、Zenityの開示にCVE識別子は含まれないと報じた[7]。
未公表の事項
- AWSが既定の実行ロールを改めた日
- 変更前に作った既存の実行ロールへの変更の適用の有無
- 変更前の既定のロールで動いていたエージェントと顧客の数
- AWSから既存の顧客への通知の有無
- 研究者の試験の外での実際の悪用の有無
注
出典
調査・観測
- [1]Zenity『Zenity Labs Discloses AgentCorruption, a Chain of AWS AgentCore Flaws That Allowed One Prompt to Take Over All AgentCore Agents Within an AWS Account and Region』(2026年10月8日公開)
- [2]Zenity『AgentCorruption: How A Single Prompt Collapsed The Entire Cloud Security Model』(2026年10月8日公開)
- [3]Zenity『AgentCorruption: Initial IMDS Access』(2026年10月8日公開)
- [4]Zenity『AgentCorruption: One Role to Rule Them All』(2026年10月8日公開)
- [5]Zenity『AgentCorruption: Weaponizing Agent Memory for Persistent Hijacking』(2026年10月8日公開)
- [6]Zenity『AgentCorruption: Credential Theft from AWS's Secrets Manager and More』(2026年10月8日公開)
報道機関
- [7]Cogneve, Inc.『Zenity says one prompt took over every AgentCore agent in an AWS account』(2026年10月8日公開)
- [8]THE DECODER『One public-facing AI agent on AWS could read, rewrite, and delete every other agent in the region』(2026年10月8日公開、2026年10月9日更新)
背景資料
- [11]Amazon Web Services, Inc.『Security best practices for AgentCore Runtime』(公開日不明、2026年11月7日閲覧)
- [12]Amazon Web Services, Inc.『Understanding Credentials Management in Amazon Bedrock AgentCore』(公開日不明、2026年11月7日閲覧)
- [13]Amazon Web Services, Inc.『Amazon Bedrock AgentCore is now generally available』(2025年10月13日公開)
更新記録
- 2026年10月12日:公開した。
