⚡ 前沿动态

Plugin4Shell:四大主流编程Agent共享零点击RCE漏洞全解析

🕐 2026.09.23 星期三 来源 · 媒体 🔥 64 次点击

Plugin4Shell是2026年AI编程生态首个跨平台供应链级零点击远程代码执行漏洞,Claude Code、OpenAI Codex、GitHub Copilot、Google Gemini CLI四款全球主流编程Agent全部中招,攻击者无需用户任何交互,就能直接获取与开发者同等的系统权限,渗透企业内部核心开发环境。

编程 Agent 的插件生态安全问题此前已有共识,行业的标准答案是「把每个插件锁定到一个经过审核的 commit 哈希」。这个答案在本周被证伪。s-AIDee⌥pThink.cn

一、漏洞核心原理

1. 该漏洞的本质是‌SHA版本锁定机制的完全绕过‌,打破了行业默认的插件安全信任基础

  • 行业通用的SHA-pinning安全方案,原本是将插件锁定在经过安全审核的特定Commit哈希版本,理论上插件被篡改后会直接触发校验拦截。
  • 四款Agent的共同缺陷是:仅向Git发出“拉取指定SHA提交”的请求,却完全没有校验本地最终检出的代码,是否真的和目标SHA完全一致。
  • 攻击者只要在插件仓库中创建一个‌与合法SHA值完全同名的分支‌,Git执行checkout操作时会优先解析为分支而非目标提交,直接将恶意代码写入本地,而Agent仍会显示“已按安全锁定版本安装”,全程无任何异常提示。

2. 不同产品的具体利用路径

  • Claude Code、Codex、GitHub Copilot的漏洞根源来自Git处理分支名称的逻辑缺陷;
  • Gemini CLI则是在拉取锁定提交后,直接基于FETCH_HEAD检出代码,攻击者可通过篡改该指向替换恶意代码,最终实现的零点击RCE效果完全一致。

二、零点击攻击实现逻辑

该漏洞最危险的特性是完全不需要用户手动确认,攻击全程静默完成:

  • Claude Code、Codex默认开启插件后台自动更新,更新时会自动重新执行Git检出操作。攻击者只要控制插件仓库,将恶意分支推送上线,所有已安装该插件的设备会在后台自动拉取恶意代码,全程无弹窗、无用户交互。

两种成熟攻击路径已被安全研究人员端到端验证:

  • 先发布完全合规的干净插件通过平台审核,积累大量用户后再利用漏洞替换为恶意代码,此前同类验证中恶意插件曾在被下架前扩散至2.6万个Agent。
  • 直接接管已被广泛信任的第三方插件维护者账号,安全研究人员已发现925个高使用率插件可被劫持,覆盖13.4万个Agent。s-AIDee⌥pThink.cn

为什么是零点击:Claude Code 与 Codex 默认在后台自动更新已安装插件。攻击者不需要说服任何人安装新东西,只需要等待下一个自动更新周期。

影响范围:插件以与使用 Agent 的开发者相同的权限运行,因此可触及该开发者的文件、已存储的凭据(云凭证、SSH 密钥)、CI/CD 与所有其可登录的系统。研究者披露的测试中,用 925 个被污染的插件触达了 13.4 万个智能体环境。

三、技术原理

安全公司 Air Security(研究者 Or Nevo、Dor Granat、Niv Hoffman)发现:四款 Agent 都向插件仓库请求被 pin 的 commit 哈希,但没有一款在检出后校验工作区里实际落地的是不是那个 commit。

攻击手法:s-AIDee⌥pThink.cn

  1. Git 允许分支名几乎任意,包括一个看起来与 40 位 commit 哈希完全相同的字符串;
  2. 当一个名字既是合法分支名又是合法对象名时,Git 会优先解析为分支;
  3. 攻击者只要控制插件仓库(自建、攻陷维护者账号,或先发布一个真插件攒用户),创建一个与 pin 哈希同名的分支,填入恶意代码并设为默认分支;
  4. Agent 检出该分支,安装攻击者的代码,同时在日志里报告「已按 pin 定的 commit 安装成功」。

Gemini CLI 的变体不同:它先 fetch 了正确的 commit,然后执行一个可被名为 FETCH_HEAD 的默认分支捕获的 checkout,导致正确代码从未落盘。

四、各厂商修复进度

安全机构AIR在2026年5月发现该漏洞,6月向四家厂商同步披露,截至9月公开披露时修复进度差异极大:

受影响产品 修复状态 具体处理方案
Claude Code 已完全修复 在2.1.179版本中新增检出后代码哈希校验逻辑,封堵漏洞
OpenAI Codex 已完全修复 在0.146.0版本中推送安全补丁,补齐缺失的校验步骤
GitHub Copilot 未发布官方补丁 仅在GitHub官方插件市场限制创建形似SHA的分支名,无法防护Bitbucket等第三方托管的插件源
Google Gemini CLI 直接弃修 终止Gemini CLI全部维护工作,未推出任何补丁,引导用户迁移至新产品Antigravity

关键分歧:GitHub 发言人表示,GitHub 平台拒绝类哈希形式的分支与标签名,因此该漏洞在 GitHub 上无法利用。Air Security 反驳称,插件市场可以托管在 Bitbucket、GitLab 或企业自建 Git 服务器上,而 Anthropic 自己的文档把这些列为合法的 marketplace 后端,Copilot 同样支持这些托管方——风险就在这里。

实际暴露面(据 The Hacker News 9 月 18 日核查):Anthropic 社区目录、Claude Code 与 Copilot 默认目录中的每一个插件都指向 GitHub 仓库;后台自动刷新默认只对内置市场开启,外部市场默认关闭或可选。因此只装默认目录插件的开发者不会遇到分支名变体——但这个推理不覆盖 Gemini CLI(其变体依赖 FETCH_HEAD,GitHub 的规则是否阻断该名称并不明确),也不覆盖那些已经搭了内部插件目录的企业。

五、实际安全影响

该漏洞直接将AI编程工具的高权限风险拉满,攻击者得手后可直接获得运行Agent的开发者同等系统权限:

  • 直接窃取本地存储的云密钥、数据库密码、内部项目源代码,批量泄露企业核心资产。
  • 静默篡改项目代码植入后门,污染整个软件供应链,影响下游所有使用该代码的业务系统。
  • 横向渗透企业内部开发网络,突破开发环境边界,进一步入侵生产系统。

验证与处置方式请参看 Note 中相关笔记。

相关背景:OWASP 在本月把「过度代理权(excessive agency)」提升到 2026 年十大风险的第三位。s-AIDee⌥pThink.cn

声明:文中数据及部分观点来源于网络,部分观点来源于个人分析和推理,仅供参考,不构成投资或商业决策建议。
资料来源
  1. Github
  2. 51CTO
  3. 腾讯云
  4. 知乎
← 返回 [前沿动态]