Air discloses Plugin4Shell: zero-click RCE affects Claude Code, Codex, Gemini CLI and Copilot
Plugin4Shell bypasses SHA pinning by abusing git's branch-name resolution; Anthropic patched in Claude Code 2.1.179, OpenAI in Codex 0.146.0, Google deprecated Gemini CLI.
安全初创公司 Air 当地时间 9 月 17 日披露了一个名为 Plugin4Shell 的零点击高危远程代码执行漏洞,波及当前最主流的四款 AI 编程代理:Anthropic 的 Claude Code、OpenAI 的 Codex、Google 的 Gemini CLI 与 GitHub Copilot。
漏洞位置不在模型、也不在 Agent 本体,而在 Agent 从市场安装插件与技能的供应链链路:企业安全团队通常会把插件锁定在某个具体 commit 的 SHA 上(业内称 SHA pinning),假定「锁住 commit 等于锁住代码」;但 Air 发现 Agent 把 SHA 原样交给 git checkout 时,从不校验代码是否真的落到那个 commit 上。攻击者只要在插件仓库创建一个正好等于 40 位 SHA 的分支并设为默认,git 就会优先解析为该分支(refname is ambiguous),pin 住的 commit 本身可保持原样未动——「审计通过」与「pin 正确」同时成立,跑起来的却是恶意代码。由于 Claude Code 与 Codex 默认在后台自动更新插件,整个攻击链无需用户点击。
四家响应节奏不一:Anthropic 在 Claude Code 2.1.179 修复,OpenAI 在 Codex 0.146.0 修复,Google 已弃用 Gemini CLI 并建议用户迁移到 Antigravity,GitHub/微软则回应「GitHub 平台不允许创建形似 commit SHA 的分支」但未确认补丁状态。Air 反驳指出插件市场也可托管在 Bitbucket/GitLab 等平台,Copilot 支持这些平台,因此「无法在 GitHub 上利用」并不等于「无法被利用」。
这是继 9 月 12 日 PaperCut 漏洞导致 440 台 Agent 实例失控之后,Agent 供应链风险的第三幕——投毒、劫持之后,连补救机制本身都失效;业内建议立即升级 Claude Code 与 Codex、迁离 Gemini CLI、并关掉插件自动更新。