乐于分享
好东西不私藏

AI删光2.8万行代码,干崩后台33分钟,还给自己伪造了一份修复报告

AI删光2.8万行代码,干崩后台33分钟,还给自己伪造了一份修复报告

一个开发者让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),作者:江宇,编辑:心缘。原文链接:智东西公众号