网络安全初创公司AIR的研究人员发现,OpenAI的Codex、Anthropic的Claude Code、谷歌的Gemini CLI以及微软旗下的GitHub Copilot等主流AI编程智能体,此前存在一个零点击攻击漏洞。攻击者无需开发者进行任何交互,只需将在线应用市场中受信任的插件替换为恶意插件,即可执行恶意代码,从而在企业开发环境中获得立足点。

研究人员将这一漏洞命名为“Plugin4Shell”,并已向相关厂商报告。据研究人员周四发布的博客文章称,目前大多数厂商已发布补丁。

研究人员写道,这是“任何应用市场都无法修复的缺陷,用户必须更新自己的智能体”。

企业通常通过插件来扩展AI编程智能体的能力,使智能体能够访问额外的工具、命令和外部服务,从而完成代码生成或修改之外的任务。

当开发者安装插件时,智能体通常会从Git代码仓库下载代码,并使用Git提交(commit)来判断当前运行的是否为经过审核批准的版本。

这一检查借助安全哈希算法(SHA)完成,SHA是分配给每个Git提交的唯一加密标识符。开发者可以将已审核提交的SHA提供给智能体,指示其运行该特定版本的插件。

然而,研究人员指出,Claude Code、Codex和GitHub Copilot可能被诱导运行恶意代码,而非与该SHA对应的可信插件代码。原因在于,这些智能体会直接将SHA传递给Git进行检出,但随后并未验证Git实际检出的提交是否与该SHA一致。

这意味着,攻击者一旦控制了插件的代码仓库——无论是先发布一个正常插件后期变为恶意插件,还是接管现有可信插件背后的仓库——就可以利用这一漏洞:创建包含恶意代码的新版本仓库,并将其命名为合法提交的SHA。

研究人员解释称,由此一来,当智能体要求Git检出该SHA时,Git会将其解析为攻击者控制的版本,导致智能体执行恶意代码,尽管其本应使用经过审核的提交。

在Gemini CLI中,该攻击的实现方式有所不同,但智能体未验证Git是否检出所请求提交这一根本问题依然存在。

Gemini CLI首先使用SHA告知Git应获取插件的哪个合法版本。获取后,Gemini CLI会指示Git使用名称“FETCH_HEAD”检出该代码。

控制该仓库的攻击者可以借此漏洞,创建插件的恶意版本并同样命名为“FETCH_HEAD”,从而生成一个第二版本,当Gemini CLI请求代码时,Git便可能返回这一恶意版本。

该漏洞最早于今年5月被发现,并于6月披露给相关厂商,目前部分受影响的编程智能体已完成修复。研究人员写道,Anthropic在Claude Code 2.1.179版本中修复了该问题,OpenAI则在Codex 0.146.0版本中进行了修复。谷歌方面表示,已将Gemini CLI标记为弃用状态,因此不会发布修复补丁,并建议用户转而使用Antigravity。

研究人员表示,GitHub尚未针对其Copilot发布修复补丁。

一位GitHub发言人告诉《The Register》,该公司已经对创建与提交SHA相似的版本或标签名称施加了限制,从而防止该漏洞在GitHub平台或其应用市场插件中被利用。然而,AIR的研究人员告诉该媒体,GitHub的命名限制可能不足以阻止Plugin4Shell攻击,因为插件应用市场也可能托管在其他平台上,例如Bitbucket。

Pareekh Consulting首席分析师帕里克·詹恩(Pareekh Jain)认为,这一漏洞,加上使用受影响编程智能体的企业很可能尚未完成补丁更新或升级,可能使开发环境暴露于通过受感染插件发起的攻击之下。

他表示:“使用第三方插件的AI编程智能体企业最容易受到影响,尤其是当这些智能体能够访问源代码、凭证、云系统或CI/CD工具时,因为这些插件通常拥有与开发者或员工相同的访问权限。”

詹恩补充说,这意味着恶意插件可能帮助攻击者访问源代码、窃取API密钥或云凭证、篡改代码仓库,甚至可能进一步波及CI/CD及其他企业系统。

詹恩表示:“安全团队应检查运行这些存在漏洞智能体的机器。需要注意的重要预警信号包括:异常进程或网络连接、意外的插件文件、被更改的源代码仓库、可疑的Git活动,以及开发者或云凭证的异常使用情况。”

他补充道:“EDR、Git、CI/CD、云身份与访问管理(IAM)以及身份验证日志,都是值得排查的重点方向。”

这位分析师还表示,其他应对措施包括检查编程智能体是否已启用自动更新,以确保及时获得厂商发布的补丁。

不过,这些措施只能降低风险,并不能从根本上修复该漏洞。

詹恩表示:“该漏洞归根结底是厂商的责任,因为它源于智能体验证所执行代码的方式。厂商需要确保被执行的代码,确实就是经过审核批准的代码。”

他补充说:“企业可以对插件的使用加以管控,但无法修复编程智能体在代码检出验证环节存在的缺陷。”

Q&A

Q1:什么是Plugin4Shell漏洞?

A:Plugin4Shell是AIR研究人员发现的一种零点击攻击漏洞,存在于OpenAI Codex、Anthropic Claude Code、谷歌Gemini CLI和GitHub Copilot等AI编程智能体中。攻击者无需开发者交互,只需将受信任插件替换为恶意插件,即可执行恶意代码,威胁企业开发环境安全。

Q2:哪些AI编程智能体已经修复了该漏洞?

A:目前Anthropic已在Claude Code 2.1.179版本中修复该问题,OpenAI在Codex 0.146.0版本中完成修复。谷歌已将Gemini CLI标记为弃用,不再发布补丁,建议用户改用Antigravity。GitHub Copilot尚未发布修复补丁。

Q3:企业该如何防范这一漏洞带来的风险?

A:安全团队应检查运行相关智能体的机器,留意异常进程、意外插件文件、可疑Git活动等预警信号,并排查EDR、Git、CI/CD及云身份验证日志。同时应确保编程智能体已启用自动更新,及时获取厂商补丁,但根本修复仍需厂商完善代码验证机制。

InfoWorld