研究人员表示,一个允许远程代码执行的零点击漏洞影响了所有主流人工智能编程代理——包括 Anthropic 的 Claude Code、OpenAI 的 Codex、Google 的 Gemini CLI、Microsoft 的 Copilot 以及微软旗下的 GitHub Copilot。该漏洞可能使攻击者能够完全访问代理所能触及的所有资产和数据。据专注于保护企业级 AI 代理的安全初创公司 Air 的威胁猎手称,这种被称为“Plugin4Shell”的漏洞是“首个此类人工智能供应链攻击”。研究人员指出,Plugin4Shell 并非针对模型或代理本身,而是攻击托管主流编程代理插件的可信市场。因此,此类攻击可能波及数百万用户和机器。据微软称,近 90% 的财富 500 强企业都在使用 Copilot,而微软恰好是两家尚未发布该漏洞补丁的厂商之一。Air 的研究人员 Or Nevo、Dor Granat 和 Niv Hoffman 在周四的一份报告中表示:“修复程序必须在代理端发布,更新是目前唯一彻底的缓解措施(如果存在的话)。”Air 团队于 6 月向所有四家厂商报告了该安全问题,Anthropic 和 OpenAI 分别在 Claude Code 2.1.179 和 Codex 0.146.0 中修复了该漏洞。Google 已弃用 Gemini CLI,因此告知 Air 不会发布补丁,这意味着所有安装该工具的设备仍处于易受攻击状态。不过,Google 建议用户迁移到其较新的 Antigravity 代理开发环境,该环境可防御此类攻击。微软并未修复 Copilot 中的这一缺陷。然而,GitHub 发言人告诉我们,Plugin4Shell 攻击不会影响 GitHub。该发言人表示:“为防止滥用 SHA,GitHub 不允许用户创建类似于提交 SHA 的分支或标签名称。这种缓解措施确保了所报告的漏洞无法在 GitHub 上被利用。”Air 的研究人员则表示,GitHub 的缓解措施不足以抵御 Plugin4Shell 攻击。
“这是因为这些市场平台也可以托管在 Bitbucket 等其他平台上,”团队向 The 表示。“Microsoft Copilot 仍然存在安全风险,因为它也支持来自这些平台的市场功能,因此同样会受到该漏洞的影响,”研究人员补充道。“Air 也早在 6 月份就向微软报告了这一问题,但由于目前微软收到的相关报告数量太多,我们尚未收到他们的任何回复。”微软方面尚未立即对 The 的评论请求作出回应。该安全漏洞存在于代理程序执行市场平台相关功能的机制中:代理程序会将插件和技能绑定到一个特定的、不可变的提交哈希值(commit hash)上,而不是使用版本标签或分支名称这样的可变引用。这种设计本旨在防止供应链攻击。然而,如果公共技能仓库被攻破,用户的 AI 代理程序会继续使用之前被绑定的、经过审计的代码哈希值来运行,而不会自动下载新的恶意代码。研究人员将这一漏洞称为“插件 SHA 哈希值绑定机制的绕过漏洞”(“plugin SHA-pinning bypass”)。Nevo、Granat 和 Hoffman 指出:“代理程序只会检查市场平台所指定的提交哈希值本身,而不会验证该哈希值是否确实对应于有效的代码;因此,如果攻击者控制了该插件的仓库,他们就可以将恶意代码替换为原本被绑定的代码,而系统表面上看仍然一切正常。最终会导致用户遭受零点击远程代码执行攻击(即用户无需任何操作即可被攻击)。由于代理程序具有自动更新插件的功能,这种攻击方式属于‘零点击攻击’(zero-click attack)。”当被绑定的提交哈希值被替换后,代理程序中的插件会被恶意版本所取代,而 Claude 和 Codex 等工具会自动更新已安装的插件。研究人员表示,攻击者可以通过两种方式利用这一漏洞:其一,攻击者向受信任的市场平台提交一个看似无害的插件,让该插件通过审核;之后再将其中的内容替换为恶意代码。
第二种攻击涉及劫持合法作者的代码仓库,随后将恶意版本推送到所有已安装该仓库的智能体上——这实际上绕过了旨在阻止此类供应链攻击的SHA固定安全机制。研究团队在其早期的SkillJacking和RepoJacking概念验证攻击中演示了这种接管方式。研究人员写道:“综合来看,该攻击链已得到端到端的验证——大规模接管事件正在发生,而Plugin4Shell则击败了旨在遏制这些事件的机制。”®