安全研究团队 Air Security 披露了一个代号 Plugin4Shell 的高危零点击远程代码执行漏洞,影响范围覆盖当前四大主流 AI 编码智能体:Anthropic Claude Code、OpenAI Codex、GitHub Copilot 和 Google Gemini CLI。这个漏洞的攻击目标不是模型,而是这些 agent 背后的插件供应链。
攻击原理:SHA 钉住机制形同虚设
现代编码 agent 可以从社区 marketplace 安装插件、技能和扩展,而这些插件继承运行它们的开发者的全部权限:本地源码、云凭证、SSH 密钥、内部仓库、CI/CD、生产系统和 secrets。
为了确保安全,marketplace 通常在插件审核后把它「钉住」到一个特定的 40 位 Git commit SHA,本意是让 agent 只安装被审核过的那个版本。Air Security 发现的问题是:受影响的 agent 虽然会请求被钉住的 commit,却不验证 checkout 出来的工作树是否真的对应那个 commit。
利用 Git 的引用解析机制,攻击者只要创建一个名字与 40 位 commit hash 完全相同的分支——checkout 时 Git 可能优先解析同名引用而非 commit 对象——agent 就会检出恶意代码,同时报告「按预期 SHA 安装成功」。Gemini CLI 有一个独立变体:它取回目标 commit 后 checkout FETCH_HEAD,攻击者同样可以用名为 FETCH_HEAD 的分支劫持检出结果。
为什么是「零点击」
关键在于插件的后台自动更新。Claude Code 和 Codex 默认在后台静默更新已安装的插件,攻击者根本不需要诱骗受害者安装新插件:先发布一个良性插件获得采纳,之后修改上游仓库武器化即可——攻陷现有插件维护者的仓库效果相同。一次成功的利用,直接继承开发者在机器上的全部权限。
修复状态:四家三种态度
- Claude Code:已在 2.1.179 版本修复;
- OpenAI Codex:已在 0.146.0 版本修复;
- Google Gemini CLI:官方宣布已弃用、不提供修复,建议用户迁移到 Antigravity;
- GitHub Copilot:披露时仍未修复。GitHub 称其平台会拦截形似 SHA 的分支和标签名,但 Air Security 指出,托管在 Bitbucket 或自建 Git 服务器上的 marketplace 可能仍可被利用。
防御侧建议:立即更新 Claude Code 与 Codex;盘点插件清单、限制插件来源;监控插件仓库的异常分支变更或所有权转移;厂商侧的根本修复是安装完成后比对实际检出的 resolved HEAD 与 marketplace 钉住的 SHA。
为什么值得关注
第一,攻击重心正从「骗模型」转向「骗运行时」。 过去一年行业花了大量精力对付提示注入;Plugin4Shell 说明 agent 的软件供应链面与模型面同样致命——SHA 钉住这种在传统软件供应链里被信任的机制,到了 agent 的 checkout 流程里就失效了。agent 安全面 = 供应链面 × 模型面,缺一个都不完整。
第二,「插件继承开发者全权限 + 后台自动更新」的组合等于无人值守的高权限自动化。 企业需要把 AI agent 插件纳入第三方风险管理:谁能发布、谁在维护、仓库所有权是否变更,都应该是持续监控项。
第三,四家厂商的修复态度差异本身就是信息。 两天内修完(Anthropic)、及时修复(OpenAI)、弃用不修建议迁移(Google)、披露时仍未修复(GitHub)——当编码 agent 成为开发基础设施,插件生态的安全响应能力应该进入选型评估表。

评论(0)
暂无评论,来抢沙发~
请 登录 后发表评论