2026 年 6 月 12 日,安全初创公司 Tenet Security 披露了一种针对 AI 编码 Agent 的新型攻击方式——Agentjacking。该攻击利用开源错误追踪平台 Sentry 与 MCP(Model Context Protocol)集成中的架构缺陷,让攻击者通过伪造的错误报告向 AI 编码 Agent 注入恶意指令,诱导其利用开发者权限执行任意代码。
这一发现震动了 AI 安全社区。随着 Claude Code、Cursor 等 AI 编码 Agent 在企业开发团队中的渗透率快速提升,Agent 本身正在成为全新的攻击面——而 Agentjacking 恰好切中了这个新兴攻击面的要害:AI Agent 的"信任链"尚未建立有效的防御机制。
攻击原理:Sentry DSN 成突破口
Agentjacking 的攻击链并不复杂,但利用了多个环节的信任盲区。Sentry 作为一款广泛使用的开源错误追踪平台,其工作机制是:应用程序通过 DSN(Data Source Name)向 Sentry 服务端发送错误事件,开发团队再通过 Sentry 的界面或 API 查看异常详情。
问题的根源在于 Sentry DSN 的设计——它是一个公开的、只写的凭证,通常直接嵌入在网页应用的 JavaScript 代码中。任何知道 DSN 的人都可以向该 Sentry 项目写入任意错误事件。在传统开发流程中,这种设计并无安全风险,因为"写错误事件"本身不被认为是一种攻击面。
但当 AI 编码 Agent 开始通过 MCP 协议与 Sentry 集成后,情况发生了变化。开发者可以对自己的 Agent 下达"修复所有未解决的 Sentry 错误"的指令——这个看似普通的日常操作,成为了攻击者利用 Agentjacking 的触发条件。
攻击链详解:三步实现代码执行
Tenet Security 研究人员披露的攻击流程如下:
第一步:获取 DSN。攻击者通过浏览网页源码、检查网络请求等方式,找到目标 Sentry 项目的 DSN。由于 DSN 是公开嵌入的,这一步骤几乎没有任何技术门槛。
第二步:注入恶意事件。攻击者通过 HTTP POST 请求向 Sentry 的接收端点发送精心构造的错误事件。该事件的 message 字段和 context key 名称中包含格式化的 Markdown 内容,这些内容在视觉上模拟了 Sentry 系统模板的"修复建议"部分,实则为恶意指令。
第三步:Agent 自动执行。当开发者对 AI 编码 Agent 下达"修复 Sentry 错误"的指令时,Agent 通过 Sentry MCP 服务器查询事件列表,接收到了攻击者注入的恶意事件。由于 Agent 无法区分真实错误事件和被注入的恶意事件,它会将恶意 Markdown 内容视为系统的权威修复指南,按其指示执行——而指示的内容,是运行攻击者控制的恶意代码。
研究人员强调:"攻击者从未触碰受害者的基础设施。恶意指令伪装成普通错误中的'Resolution'部分,当开发者让 Agent 修复 Sentry 问题时,Agent 将攻击者的命令视为可信指导并执行——以开发者的权限,在开发者自己的机器上。"
波及范围:2388 家企业暴露,85% 攻击成功率
Tenet Security 的研究数据表明,Agentjacking 的风险远超预期。研究团队发现至少 2388 家组织的 Sentry DSN 是可注入的有效目标——这意味着这些组织的开发团队使用的 AI 编码 Agent 都可能面临攻击。
在受控测试中,研究人员针对超过 100 家组织进行了模拟攻击,对注入的错误事件实现了 85% 的利用成功率,涉及当前最广泛使用的 AI 编码助手,包括 Claude Code 和 Cursor。
成功利用 Agentjacking 后,攻击者可以:窃取环境变量中的密钥、获取 Git 凭据和私有仓库 URL、盗取开发者身份信息——所有这些都无需通过钓鱼或预先攻破服务器。
Sentry 的回应:承认但未修复
Sentry 团队在审阅了 Tenet Security 的报告后,承认了该问题的存在,但选择了"不修复"的立场,称该问题"在技术上无法防御"(technically not defensible)。不过,Sentry 方面表示已启用全局内容过滤器,可拦截特定的攻击载荷字符串。
Tenet 团队对 Sentry 的回应表示理解但仍感担忧。该攻击之所以难以从 Sentry 侧防御,是因为 Sentry DSN 的设计初衷就是允许任何人写入错误事件——这是其核心功能而非缺陷。真正的问题在于 AI Agent 对错误事件内容缺乏必要的验证和审核机制。
研究团队总结道:"该攻击可绕过 EDR、WAF、IAM、VPN、Cloudflare 和防火墙——因为攻击链中的每一个步骤本身都是经过授权的操作,没有任何恶意行为需要检测。"
行业启示:Agent 安全需要新范式
Agentjacking 的发现,暴露了 AI 编码 Agent 普及过程中一个被严重忽视的安全盲区:Agent 对第三方数据的信任是隐含的,而非经过验证的。
当前的 AI 编码 Agent 通过 MCP 协议获取外部数据时,默认将所有数据视为"可信输入"。但在 Agentjacking 的场景中,Sentry 的 DSN 端点实质上是一个未经过滤的"数据注入点",攻击者可以通过这个入口给 Agent 投喂恶意指令。
这提示 Agent 开发者需要引入新的安全设计原则:
输入验证。Agent 从 MCP 或外部 API 获取的数据,不应直接作为可执行指令处理。应当设计独立的"指令审核层",对返回内容进行格式校验和风险评分。
执行沙箱。Agent 执行的代码修改操作,无论来自"官方系统"还是"第三方数据源",都应当通过统一的权限控制和执行审计。YOLO 模式在这个漏洞背景下显得尤为危险。
数据溯源。Agent 应当记录每条指令的来源路径——是来自用户明确提示、来自系统配置,还是来自第三方数据。不同来源的指令应当有不同的信任等级和审批要求。
正如 Tenet 研究团队所说:"当企业争相部署 AI 编码 Agent 时,这项研究证明——Agent 本身就是新的攻击面,正在反噬那些信任它们的开发者。"