
新智元报道
新智元报道

【新智元导读】AI写代码的风险隐藏在看似正确的代码中,可能引发数据泄露或资产损失。Narwhal AI Code Risks开源项目整理了真实案例、早期信号和典型风险路径,帮助开发者提前识别隐患,避免重蹈覆辙。
2026年,代码正以越来越快的速度生成,却以越来越少的审视被部署。
越来越多时候,用户的需求被放进对话框,AI读完上下文,补全函数,拉起依赖,改好配置,再顺手生成测试。
等回过神来,一段代码已经躺在仓库里,等待合并。
用户都已经形成了新的习惯,先让AI写出来跑起来,有问题再看哪里需要改。
但软件世界里,最危险的东西往往是看起来平平无奇的代码:语法正确,接口合法,测试通过,注释完美。
可它仍然可能引入不存在的包名,打开过宽的权限,暴露数据库......甚至让一个能直接调用系统工具的 Agent 在提示词注入下,把敏感数据带出内部系统。
真正危险的,不是报错红灯亮起。而是所有风险仪表都显示正常。
AI 写代码的风险,过去散落在各处:一篇安全博客藏着一个案例,一个 Issue 记着一段线索。等下一个团队遇到同类问题时,又需要从头拼凑风险来源、又要耗费大量时间精力对代码进行大规模实证测量。
而北京大学Narwhal-Lab刚刚开源的Narwhal AI Code Risks已经把信息碎片整理好,按照真实事件、早期信号和典型风险路径这三种类型归类,供研究者查看。

第一条线索是一个已经合并的Pull Request,PR署名栏里赫然写着Claude Opus 4.6和Copilot,以及四位人类开发者。28项检查全部通过:没有人发现问题。
然后,清算机器人花了几分钟,拿走了价值1,778,044.83美元的抵押品。
配置文件里cbETH的价格被设成了和ETH的换算比例,约等于1.12美元,而不是实际接近2,200美元的价格。
一个价格语义错误就这样穿过了开发、检查和合并流程,最后在金融系统里变成了真实损失。这就是Moonwell cbETH预言机配置事故最刺眼的地方。
问题就出在代码中没有语法报错,人类开发者也没有立刻阻断异常的流程。相反,它看起来很完整,很顺利,这就是一次正常的工程交付。
但正是这种暗流涌动的正常,才让它成为安全事件的典型例子。
AI Coding的风险在于它并不总是以报错的方式出现。
很多时候,它披着正确答案的外衣,安静地进入工程流程。代码能跑,检查能过,PR能合并,但业务语义已经偏离了真实世界。
在低风险项目里,这种语义偏离可能只是一次返工;但在金融、企业数据系统等敏感场景中,它将直接泄露数据、暴露权限和损失资产。
当AI参与写代码、改配置、做review、甚至共同署名进入PR时,我们有没有足够把握知道每一次偏航是怎么发生的?

早期的AI帮你写代码,大多停留在局部补全。如果语法写错了,编译器会报错,单元测试会失败,CI流程会将其拒之门外。
今天的AI Coding走得更远而监管却迟迟却未跟上。
它能读文件,能改配置,能安装依赖,能生成基础设施脚本,也能通过Agent在多个任务之间自行规划。
AI不再只是坐在旁边递工具,它开始进入软件工程的更长链路。
软件工程里原本清晰的边界,被AI Agent重新连成了一条更长、更难溯源的路径。

安全事件很少一开始就有完整结论。有些事件证据充分,可以作为真实案例进入目录;有些还停留在社区截图、研究员讨论或初步披露阶段,只适合继续观察;还有一些不绑定单一真实事件,却已经形成清晰模式,适合拿来做提前推演。
Narwhal AI Code Risks 把材料分成三层:`cases/`、`inferred/` 和 `scenarios/`。
cases/ 记录已经有公开来源和证据链支撑的真实事件;inferred/ 保存还没有完全坐实、但值得持续追踪的早期信号;scenarios/ 整理暂不绑定单一事件、但风险路径足够清晰的典型场景。
如果没有这样的公共记录,AI Coding 的风险很容易变成互联网里的短期记忆。
今天大家记得某个包名,明天讨论某次数据暴露,过几个月又被新的工具热潮覆盖。等相似问题再次出现,团队仍像无头苍蝇撞进风险未知的航区。
Narwhal AI Code Risks做的,就是把这些零散风险片段固定下来,让后来的人可以翻到同一页。

AI写代码带来的问题,不只在代码里。它在依赖里,在权限里,在Agent的工具调用里,更在人类对AI输出的信任方式里。
Narwhal AI Code Risks目前把风险分成7类:供应链、代码级漏洞、云与基础设施配置、Agent风险、垂直领域风险、知识产权与合规风险,以及人为因素。
在供应链风险里 ,AI可能推荐不存在的依赖。代码级漏洞里,AI可能把路径遍历、输入校验缺失、鉴权问题重新写进业务代码。云与基础设施配置里,AI可能为了先把代码跑起来给出过宽的权限、公开的存储桶或暴露的端口。Agent风险则更复杂,不只是生成文本,而是开始执行动作。AI生成物正在给真实系统埋下隐患。

当AI一步步走进真实世界,相关的风险防治不应该只停留在事后复盘或零散讨论中。
Narwhal AI Code Risks真正重要的地方,是把风险案例变成可以复用的知识。
开发者可以用它识别相似问题;安全研究人员可以把它作为样本库;工具厂商可以从中提取检测规则和评测基准;开源社区也可以继续补充新的案例、新的证据和新的风险类型。
AI 的引擎正在轰鸣,每一次偏航也都应该留下坐标。风险从来不会因为被忽视而消失,但经验可以被记录与传递。真正有价值的并非发现一次漏洞,而是让后来者不必再踏入同一个陷阱。
Narwhal AI Code Risks正在做的,就是为AI应用元年的软件世界,留下一份开源的航行日志。
参考资料:
https://github.com/Narwhal-Lab/Narwhal-aicode-risks
编辑:LRST

