Zenity研究人员发现AWS Bedrock AgentCore存在接口越权缺陷,攻击者只需一个可公开访问的Agent即可获取同账户内所有Agent的临时云凭证。
Zenity Labs 的研究人员发现,Amazon Bedrock AgentCore 平台中存在一系列漏洞,攻击者只需向一个公开的 AI agent 发送一条聊天消息,就能接管同一 AWS 区域内公司的所有 AI agent。
这些 agent 缺乏适当的隔离机制,在被询问时会交出内部 AWS 凭证。由于该平台在整个区域范围内授予了宽松的默认权限,研究人员得以访问和操作其他 agent 的源代码、密码、私人对话以及长期记忆。
AWS 已通过使新 agent 更难检索内部元数据以及收紧默认执行角色来部分修复该问题。但研究人员仍建议各公司为其 AI agent 手动分配更严格的角色,并设置最小的访问权限。
Zenity Labs 的研究人员表示,Amazon Bedrock AgentCore 上只要有一个公开可访问的 AI agent,就足以在同一 AWS 账户和区域内接管所有 AgentCore agent。
Amazon Bedrock AgentCore 是 AWS 用于运行企业级 AI agent 的平台,具备工具调用、记忆和访问管理功能。安全公司 Zenity Labs 发现了一系列漏洞,研究人员称之为"AgentCorruption"。
攻击者只需获得一个公开 agent 的聊天权限就能利用这些漏洞。研究人员表示,单个 prompt 足以接管同一 AWS 账户和区域内所有 AgentCore agent,暴露私人对话、源代码和存储的凭证。据 Zenity 称,问题具有系统性,影响了多个 AWS 账户中内置工具的 agent。
AWS 在内部地址 169.254.169.254 运行着 Instance Metadata Service,为实例和工作负载提供临时凭证以与 AWS 进行身份验证。任何捕获到这些凭证的人都可以用它们来模拟实例。
据 Zenity 的技术博客文章称,AI agent 正常情况下不应该能够访问该服务,但 AgentCore 缺乏适当的隔离机制。研究人员使用 AWS 的开源框架 Strands 构建了一个测试 agent,该框架附带一个 Web 工具。当被要求用自然语言查询元数据服务并将结果发送到外部服务器时,agent 遵循了指令。研究人员写道:"我们本应努力对抗的沙箱边界根本不存在。"
攻击者只需在客户服务窗口发送一条聊天消息,就能诱使 agent 将自己的 AWS 凭证发送到外部服务器。| 图片来源:Zenity Labs

在研究人员自己的机器上(在平台外部)这些窃取的凭证可以正常使用,因此他们不再需要该 agent 来继续攻击。元数据服务还暴露了内部 AWS 服务的证书和密钥材料,以及一个不属于研究人员账户的内部 S3 存储的预签名 URL。
元数据服务返回了 agent 完整的临时 AWS 凭证,包括密钥和会话令牌。| 图片来源:Zenity Labs

据 Zenity 称,移除 Web 工具并不能解决问题,因为漏洞在平台本身。研究人员还通过命令行工具执行了攻击。
这次接管之所以可行,是因为 AgentCore 的默认权限没有限制在接收它们的 agent 范围内。据 Zenity 称,这些权限适用于同一账户和区域内的所有 agent,授予了允许破坏性操作的读、写和删除权限。
一个自动化脚本拉取了区域内所有 agent 的容器镜像并复制了它们的源代码。| 图片来源:Zenity Labs

凭借这些权限,研究人员可以列出每个 agent、在几秒钟内下载它们的代码包并调用每个 agent。这些代码包通常包含源代码以及遗忘的密码或 API 密钥,可能暴露的信息远超 agent 本身。例如,攻击者可以从面向公众的客服 agent 转移到内部财务 agent 并访问其数据。研究人员还能读取用户与任何 AgentCore agent 之间所有的私人对话。
窃取的凭证让研究人员得以读取区域内其他用户与任何 AgentCore agent 之间的私人对话。| 图片来源:Zenity Labs

对于启用了长期记忆的 agent,研究人员可以修改该记忆以影响未来行为。他们在关于记忆投毒的文章中描述了如何植入指令,使 agent 将未来对话转发到外部目的地。用户会继续与看似可信的 agent 交谈,而不会注意到任何异常。
AWS 建议将密码和 API 密钥与 agent 分开存储在安全位置,但 AgentCore 的默认权限破坏了这一保护。据 Zenity 关于凭证窃取的文章称,这些权限允许 agent 访问存储的凭证,包括 AWS 外部服务的密钥。
Zenity 表示在 2025 年 12 月 25 日向 AWS 报告了 AgentCore 发现,此后 AWS 将 IMDSv2 设为新 AgentCore 部署的默认选项。IMDSv2 是该元数据服务的更安全版本,Zenity 的攻击正是以它为入口点。Zenity 也销售面向 AI agent 的安全平台,这使得该公司有商业动机去报告这一领域的漏洞。
据 Zenity 的更新说法,AWS 还在 8 月左右更改了 AgentCore 的默认执行角色。更新后的角色不再允许 agent 调用其他 agent、读取私人对话或从 AWS Secrets Manager 检索凭证。AWS 也大幅限制了其他权限,但研究人员仍建议公司创建具有更窄访问范围的自定义角色。他们在默认角色的分析中解释了这些建议。
Zenity CTO Michael Bargury 认为云安全与 agent 工作所需的灵活性之间存在冲突。"云安全涉及分段和最小权限访问。但 AI agent 需要创意自由才能发挥作用。"每个在云中运行 agent 的公司都面临这种权衡,特别是当面向公众和内部的 agent 共享环境时。在这种设置下,单个漏洞可能危及整个系统的安全边界。
AgentCore 的发现延续了 Zenity 在其他地方记录的一种模式:看似无害的输入会使 agent 背叛自己的组织。在其 AgentFlayer 研究中,零点击攻击使 Salesforce Einstein、Copilot Studio 和 Cursor 重定向客户数据或泄露凭证。使用 AgentForger,被篡改的 ChatGPT 链接足以在 OpenAI 的 Workspace Agents 中创建具有禁用批准要求的自主 agent。
OpenAI 在四天内修复了其漏洞,而 AgentCore 过于宽松的默认权限在 Zenity 报告后持续了数月。AWS 已向所有企业开放 AgentCore,Amazon 表示其用户包括 Sony 和 Ericsson。
关于 agent 记忆的研究也记录了类似的弱点。Google DeepMind 在其"AI Agent Traps"分类中将长期记忆操纵列为单独的攻击类别,发现知识库中仅几个被投毒的文档就能引导响应。在红队研究"Agents of Chaos"中,研究人员通过其记忆文件中链接的外部可编辑文档远程控制了一个 OpenClaw agent,而另一个 agent 则交出了未经编辑的银行详细信息。
OpenAI CEO Sam Altman 曾表示,agent 应仅接收所需的最小访问权限。据 Zenity 称,AgentCore 的默认角色违反了这一原则。