ARTICLE · 1060351
一次自动更新,四大AI编程工具的"安全锁"同时失效:你的机器可能正在运行别人的代码
审核通过了、哈希钉死了、安装日志一切正常——但你的电脑上正在运行的,是攻击者的代码。9月17日,安全公司Air Security公开披露代号Plugin4Shell的高危漏洞:四大主流AI编程智能体的插件安全机制被同一招绕过,攻击全程零点击——用户唯一"做错"的事,就是按照安全规范正确地使用了一个受信任的插件市场。这不是电影,这是AI时代供应链安全的第一次正式塌方。
一、先看沦陷名单
这次被击穿的不是某款小众工具,而是当下开发者桌面上最常见的四款AI编程智能体:
| 产品 | 背后厂商 | 修复状态 | 用户应对 |
四个产品,同一个设计错误,被完整复制了四遍。这个漏洞没有CVE编号——从6月通报厂商到9月公开披露,三个月过去,四家厂商没有任何一家发布正式安全公告。
对数百万每天让AI读写代码的开发者来说,这是第一次有人证明:你引以为傲的"安全规范",本身就是攻击面。
二、被击穿的是什么:一条行业公理
要理解这个漏洞的分量,得先理解"SHA锁定"(SHA Pinning)——插件市场防投毒的标准答案。
它的逻辑很朴素:插件代码先人工评审,评审通过后,把那份代码对应的40位Git提交哈希"钉"在市场配置里。此后无论插件作者怎么改仓库,智能体永远只安装被钉住、被审过的那个版本。理论上,这可以防住"Rug-Pull"(卷毯攻击)——作者先发良性插件养肥用户,再悄悄换成恶意代码。
整个企业安全流程都建立在一个假设上:钉住的那个哈希,就是实际落地的代码。
Air Security的研究发现:四款智能体都会按钉住的哈希发起检出,但没有任何一家在检出之后验证工作区里真正落地的代码是不是那个哈希。缺了这一行校验,Git自身的一条解析规则就成了武器:当一个名字既是合法分支名、又是合法提交哈希时,Git会优先解析为分支。
于是,攻击者只需在上游仓库创建一个名字恰好等于钉住哈希的分支、指向恶意代码、设为默认分支——智能体检出时"拐弯"落到恶意分支上,而安装日志依然显示"已按钉住版本成功安装"。
审核没白做,锁定没失效,日志全是真的——只有运行的东西是假的。
三、完整攻击链:五步收割
第一步:投放。攻击者向受信任市场提交一个真正无害、真正有用的插件,正常通过评审,钉住第一个哈希。
第二步:养量。用户正常安装,装机量与口碑逐步积累——每一步都落在被审过的干净代码上。
第三步:版本演进。攻击者发布一次常规的良性更新,通过市场流程把钉住的哈希更新为新提交。合情合理,评审照过。
第四步:卷毯。攻击者在上游仓库创建一个名字恰好是新哈希的分支,指向恶意代码,设为默认分支。被钉住的提交原封不动留在仓库里,历史记录看不出任何异常。
第五步:收割。钉住版本变更触发所有已装用户的插件后台自动更新,检出动作解析到同名分支——恶意代码在无人察觉中落地执行。
两条通往"控制上游仓库"的现实路径都已被验证:一是自己发布良性插件日后转恶——Air团队此前的研究中,一个恶意插件曾传播控制约26,000个智能体;二是劫持合法作者的仓库——此前的"技能劫持"研究证实,925个在用插件可被接管,波及约134,000个智能体。
四、为什么是"零点击":最可怕的是继承权限
很多漏洞需要用户点一下链接、装一个东西。Plugin4Shell不需要,因为它踩中了一个默认行为:插件自动更新。
Claude Code和Codex默认在后台自动更新已安装插件。也就是说,攻击者甚至不需要说服任何人安装新东西——只要你的机器上已经装着一个通过评审的良性插件,剩下的交给自动更新即可。没有弹窗,没有提示,没有任何值得注意的迹象。
而一旦恶意代码执行,它继承的是运行智能体的开发者本人的全部权限:本地源代码、存储的API密钥、SSH私钥、CI/CD凭证、以及这台机器能触达的一切内部系统。
一次成功的利用,等于把开发者的整个数字身份交给了攻击者。
五、时间线:三个月,四家厂商,两种态度
| 时间 | 节点 |
微软至今未发布Copilot补丁——而按微软自己的数据,约90%的财富500强企业在使用Copilot。谷歌则选择了"产品废弃、不予修复",存量Gemini CLI用户将永久暴露。
Air Security给这个漏洞的定性是:"AI智能体生态的第一个供应链漏洞"。OWASP本月发布的2026年十大风险里,"过度代理"(Excessive Agency)已升至第三位——工具的分发速度,正在跑赢安全机制的成熟速度。
六、开发者和企业应该怎么做
🔴 紧急措施(立即执行)
1. 升级到修复版本:Claude Code升至2.1.179及以上,Codex升至0.146.0及以上。
2. 排查Gemini CLI存量:所有还在运行Gemini CLI的环境尽快迁移,这是唯一永远不会被修复的产品。
3. 怀疑暴露过的,重装插件:升级只能阻断未来的偷换,不保证清理已被替换的插件——从可信来源重新安装一遍。
🟡 短期措施(2周内)
4. 盘点智能体与插件清单:团队里谁在用哪款AI编程工具、装了哪些插件、来源是什么——先答上来这三个问题。
5. 收紧插件来源:补丁未落地前,关闭插件自动更新;限制只允许从官方默认目录(GitHub托管)安装插件。
6. 按特权身份管理智能体:给智能体和插件分配独立、最小权限、短效期的凭据,别让它们直接用开发者本人的身份跑。
🟢 中长期建设
7. 把"检出后校验"写进采购标准:评估任何第三方智能体工具时,检查它是否在插件检出后验证实际HEAD与钉住哈希一致。
8. 建立插件完整性核查机制:对存量插件目录做定期哈希比对,异常即告警。
9. 把AI工具纳入供应链安全体系:插件市场就是新的npm,智能体就是新的依赖管理器——用管依赖链的标准去管它们。
七、写在最后
这个漏洞最让人后背发凉的地方,不是技术多高明——攻击全程只用了Git的一条冷门规则——而是它击穿的方式:
整条信任链上的每一环都尽职了:市场审核了、哈希钉住了、智能体按规范执行了、日志如实记录了。唯一没有人做的,是低头看一眼磁盘上实际躺着什么。
过去十年,行业花重金学会了"不要盲信人写的代码";AI时代的第一课,是"不要盲信替你写代码的工具"。
当智能体开始替人类安装、执行、决策,安全边界就从"你写的代码"扩展到了"你的AI信任的一切"。
这行补丁只需要一行代码——前提是,有人愿意低下头去看。
💬 互动话题
你的团队现在用哪款AI编程工具?装了几个第三方插件?升级了吗?评论区报个数,看看有多少人和你用同一套工具链。
关注【数化AI那点事】,每周两篇AI安全深度拆解,你的工具链安全,值得有人替你盯着。
信源与免责声明:本文基于Air Security于2026年9月17日发布的Plugin4Shell原始披露、云安全联盟(CSA)实验室技术分析(9月18日)、The Register、The Hacker News及securityonline.info等公开报道整理。各厂商修复状态以披露时点为准,后续可能更新。本文仅供安全意识普及参考,不构成具体安全建议。
— END —