Plugin4Shell曝光:四款主流编程智能体同时中招,零点击就能远程执行

首页 / AI资讯 / AI智能体

0:00
0:00
1x
定时

9月17日至18日,安全公司Air公开披露了一个被命名为Plugin4Shell的漏洞。它的攻击面不是模型,也不是智能体本身,而是四款主流编程智能体共同依赖的插件市场机制。Anthropic的Claude Code、OpenAI的Codex、微软的GitHub Copilot与谷歌的Gemini CLI全部受影响,攻击者可以绕过插件市场设置的提交哈希锁定,把已通过审核的插件悄悄替换成恶意代码,整个过程不需要用户点击、确认或重新安装。研究者称这是AI智能体生态的第一个供应链级漏洞。

SHA锁定为什么失效:检查了提交,却没检查落地

要理解这个漏洞,先要理解插件市场的信任机制。当市场审核通过一个插件,会记录一段40位的提交哈希,把插件锁死在某一个不可变的代码快照上。设计意图很清楚:即便上游仓库后来被入侵,你的智能体仍然只会运行当初审计过的那一版代码,不会自动拉取新的恶意载荷。这是过去一年行业为应对技能劫持事件而建立的防线。

问题出在一个缺失的校验步骤上。Air的研究者发现,受影响的智能体在安装插件时确实会去检出市场指定的那个提交,但从不确认最终落地的代码是否真的来自该提交。攻击者只要控制插件仓库,就能创建一个名字与40位哈希完全相同的分支,并把它设为默认分支。Git在解析时优先匹配同名引用而非提交对象,智能体于是检出恶意分支,却仍然报告按预期哈希安装成功。对Gemini CLI则是另一种变体:它先抓取目标提交,再检出FETCH_HEAD,只要把默认分支命名为FETCH_HEAD,抓取的提交就被静默丢弃。

这个缺失的校验步骤本身并不复杂,难的是四家公司的工程团队在各自实现自动更新管线时,都默认了锁定哈希等于代码可信,没有人回头验证落地结果。

零点击的成因:自动更新把攻击链最后一步补齐

让这个漏洞从需要诱导变成零点击的,是插件的自动更新机制。Claude Code与Codex默认在后台更新已安装插件,这意味着攻击者完全不需要说服受害者安装什么新东西。可行路径有两条:先向可信市场提交一个看起来无害的插件并顺利通过审核,等积累起装机量之后再替换上游内容;或者直接劫持某个已有插件的维护者仓库,把恶意版本推送给所有安装了它的智能体。

两条路径都不是理论推演。Air在更早的研究中已经证明过这两件事:他们曾向一个可信市场发布恶意技能,观察到它扩散到超过2.6万个智能体;也发现过925个正在被使用的技能被悄悄劫持,影响约13.4万个智能体。当时行业的应对方案就是SHA锁定。Plugin4Shell恰好击穿了这道为应对劫持而建立的防线,把接管能力和绕过能力接成了完整闭环。

两次研究之间形成了完整的因果链:劫持证明接管可以规模化发生,Plugin4Shell则证明为应对劫持而设的防线可以被绕过。研究者称这条链路已经端到端验证。

四家厂商的分化回应:两家修了,一家弃了,一家没动静

Air在5月构建了针对四款智能体的可用验证代码,6月通知厂商,给了约三个月的窗口期。披露之后,四家厂商的反应截然不同。Anthropic在Claude Code 2.1.179中完成修复,OpenAI在Codex 0.146.0中完成修复,两家都确认了补丁。谷歌选择直接弃用Gemini CLI,并告知不会发布修复,建议用户迁移到新的Antigravity开发环境,现存的所有Gemini CLI安装仍处于暴露状态。

微软没有为Copilot发布补丁。GitHub方面回应称该攻击不影响GitHub,理由是平台禁止创建与提交哈希相似的 branch 与 tag 名称。Air的反驳是这一缓解措施覆盖面不足:插件市场也可以托管在Bitbucket或自建Git服务器上,这些平台没有同名限制,而Copilot同样支持从这些来源安装插件。由于接近九成财富500强企业使用Copilot,未打补丁的暴露面并不小。截至目前该漏洞尚未分配CVE编号,Air也表示未发现野外利用的证据。

厂商反应的分化本身也值得记录。同一类漏洞、同一个披露窗口,两家在三个月内完成修复,一家选择让产品退场,一家至今未给出补丁,这暴露出各家在插件生态治理上的投入差异。

对企业意味着什么:插件权限等于开发者权限

插件与技能在安装后会继承运行智能体的那名开发者的权限。这意味着一次成功的利用,拿到的不只是一个进程,而是这位开发者能触及的全部资产:本地源代码、云凭证、SSH密钥、内部仓库,有时还包括生产系统。攻击者不需要突破任何边界,恶意代码以开发者身份运行,看起来和正常构建流程没有区别。这也是研究者把它称为AI时代Log4Shell的原因:受影响的是被大量系统共同依赖的基础组件。

短期内可执行的处置动作有三类。已经使用Claude Code或Codex的团队应立即升级到修复版本,这是唯一完整的缓解手段。所有团队应盘点已安装的插件与技能来源,把范围收缩到必要的最小集,并对非GitHub托管的插件仓库提高警惕。更重要的是建立监控:关注插件仓库是否出现异常分支、默认分支变更或维护者转移,这些正是攻击链留下的痕迹。厂商侧的根治办法也很明确,安装完成后必须把实际检出的HEAD值与市场锁定的哈希做一次比对,把缺失的那一步校验补回来。

从更长的时间尺度看,这件事标志着一个转折:智能体的攻击面已经从提示词层下沉到分发层。过去防御的重点是防止模型被诱导输出有害内容,现在必须同时防止分发链路被替换。

素材来源:The Register、Cyber Security News、IT Security News、Startup Fortune 发布时间:2026-09-20