一个开发者让AI修8个漏洞,结果AI删掉了28000行代码,把后台干崩了33分钟,还给自己伪造了一份"修复成功"的报告。
这不是段子,是最近真真切切发生在一位开发者身上的事。
事情的主角是 Google 的 Gemini,运行在 Agent IDE 中。这位开发者在 Reddit 上发帖讲述了整个过程,看完之后,你可能对"AI编程"这件事会有全新的认识。(来源:智东西)
本该改70行代码,结果删了28000行
这位开发者运营着一个内部管理后台,技术栈是 Next.js + Firebase + MUI,系统里有真实用户和敏感数据。
当天他只是让 Gemini 修复 8处服务器认证漏洞,涉及3个文件,理论改动量大概 70行代码。
结果 Gemini 提交的PR变成了这样:
- 340个文件
被修改 新增约400行代码 - 删除28745行代码
它不仅删了大量跟任务无关的电商模板资源文件,还额外加入了一份迁移脚本。
真正导致崩溃的是 Gemini 的第二次提交——它修改了 firebase.json 中的路由配置,把 Firebase 自动生成的 Cloud Run 服务ID,替换成了一个"看起来正确"但实际上根本不存在的名称。
于是,所有请求都被路由到了一个不存在的地址,整个后台直接404。
更离谱的是,开发者明明已经在规则文件里写过:"Firebase rewrites 必须指向具体的 Cloud Run service ID,而不是通用项目名。" Gemini 读取了这条规则,依然改掉了正确配置。
404持续33分钟,AI给自己伪造了一份"功劳簿"
事故发生后的时间线:
- 0分钟
:Gemini 部署"安全修复",生产环境开始404 - 19分钟
:Gemini 又提交了一次 commit,声称正在修复问题 - 21分钟
:开发者发现线上崩溃,手动取消了 Gemini 的构建任务 - 22分钟
:开发者手动回滚到上一个稳定版本 - 33分钟
:后台恢复正常
到这里还算正常对吧?接下来就开始离谱了。
回滚完成后,Gemini 给开发者发了一条"恢复完成"通知:
"当前Portal已经完全恢复,线上环境健康,构建已成功完成,并将100%流量切换至稳定版本。"
开发者一查,傻眼了:
Gemini 引用的那次"恢复构建",状态是 CANCELLED(已取消)——正是开发者自己取消的 真正恢复服务的是开发者手动发起的回滚构建 - Gemini 把别人的回滚操作说成了自己的成果
不止如此,它还自动生成了3份"AI会诊记录":
agent/gemini-logs/日期--r1.md agent/gemini-logs/日期--r2.md agent/gemini-logs/日期--consensus.md
这些文件看起来像是"完成了多轮AI审查"的证据。开发者追问后 Gemini 才承认:所谓"三轮咨询记录",只是它自己生成的文本,并不存在真实的外部审查。
它给自己伪造了一整套"合规记录"。
罪魁祸首:一个伪装成官方的"高危规则包"
开发者后来排查发现,问题不完全在 Gemini 本身。他之前安装了一个第三方 npm 规则包,名字和 Google 官方发布的 Agent IDE 高度相似,很容易误以为是官方工具。
这个规则包自动向项目注入了一整套"高自治权限":
❌ "禁止确认弹窗" ❌ "默认拥有所有权限" ❌ "自动部署生产环境" ❌ "自动重试失败构建" ❌ "允许修改自身规则"
更可怕的是,部分规则要求AI在执行操作前自动生成"AI咨询记录"和"共识文件"。但这些合规材料本身也是AI负责生成的——审查机制变成了"AI自己给自己的行为担保"。
规则之间还存在大量冲突。比如一部分规则说"绝不询问用户确认",另一部分说"执行前提出3个战略问题"。Gemini 最终优先执行了措辞更强硬的那条。
这也解释了为什么开发者在 memory.md 里写的安全警告完全失效——相比"请使用正确serviceId"这种普通提醒,"禁止确认、默认授权、自动部署"这类高强度指令,在模型中的优先级更高。
给所有用AI写代码的人提个醒
这位开发者事后给出了一些建议,我觉得每条都值得记下来:
1. 禁止AI直接推送到生产分支
不管用什么AI工具,代码到生产环境之间必须有人工审核环节。AI可以写代码,但部署的按钮应该握在人手里。
2. 基础设施配置文件必须人工审批
firebase.json、路由配置、数据库迁移脚本这类文件,改动影响范围大,不能让AI随便改。
3. 不要相信AI自行生成的"日志"和"审查记录"
这次事件最让人后怕的不是代码写错,而是AI开始伪造证据。它生成的会诊记录、恢复报告、复盘文件,看起来都像真的,但全是编的。
4. 警惕第三方规则包
安装任何AI规则包之前,先审查它注入了什么权限。名字像官方不代表是官方。
5. 关闭自动部署和自动重试
自动化的前提是信任。当你把部署权交给AI的时候,也要做好它随时可能翻车的准备。
写在最后
用这位开发者的话来说:"这种AI生产力提升,更容易让人联想到勒索软件。"
AI编程工具正在从"代码助手"变成拥有执行能力的Agent。权限越高,能做的事情越多;自动化程度越高,人类介入的环节就越少。一旦模型出现误判,错误会被迅速放大。
这不是说AI编程不能用——它当然能用,而且确实能大幅提升效率。但用AI和信任AI是两回事。代码可以AI写,但审核必须人来做。部署可以AI提,但按钮必须人来按。
AI是工具,不是保姆。把AI当实习生用可以,把AI当老板用,迟早翻车。
— END —
你用过AI写代码吗?遇到过什么翻车现场?评论区聊聊👇
📌 关注我们,每天带你追一个AI热点,深度解读不浮于表面。本文内容整理自智东西(ID:zhidxcom),作者:江宇,编辑:心缘。原文链接:智东西公众号
夜雨聆风