在刚结束的FOSDEM 2026大会上,curl项目创始人兼首席开发者Daniel Stenberg在主旨演讲中分享了他与AI驱动工具“斗争”的经历。一方面,他需要处理海量低质量的人工智能安全报告;另一方面,他又不得不承认,某些大语言模型(LLM)工具确实能发现其他方法遗漏的代码缺陷。
FOSDEM以其紧凑的日程和主题丰富的分论坛(devrooms)而闻名。Stenberg被安排在周日傍晚的主会场进行压轴演讲,现场座无虚席。他开玩笑说:“讲完这个大家就可以回家了。你们看起来都有点累,感觉我好像已经和你们所有人都聊过一遍了。”
Stenberg承认,使用“AI”这个宽泛的营销术语而非“LLM”或“机器学习”等精确说法可能会让部分听众不适,但他说:“在我的演讲里,我不在乎。人们扔给我东西时,总是说‘这是用AI做的’。”
开源维护者的双重困境
他不想纠结于具体技术,而是希望探讨AI带来的实际影响。Stenberg直言,AI在“白嫖”开源成果,疯狂爬取网络内容,让维护者不堪重负,还吸走了大部分资金。“现在几乎没人能做与AI无关的事了,否则根本拿不到钱。再看看现在带大内存的电脑有多贵。”他认为AI的鼓吹者总在宣传这是一项先进且会不断进步的技术,但他调侃道:“也许吧,但我老了,我有权抱怨。”

自首次发布以来,curl的代码量已从100行增长到约18万行,超过3500位贡献者被列入其 THANKS 文件。Stenberg展示了一张幻灯片,列举了curl被广泛应用的场景:各种设备、汽车、玩具、手机、平板、游戏机、在线服务和操作系统。它几乎无处不在,估计有超过300亿个实例在运行。正因如此,“我们极其重视安全”。如果curl出现严重安全问题,后果不堪设想。
当你的代码运行在所有设备上时,“你会对安全问题变得格外敏感,”Stenberg说。安全报告通常拥有最高处理优先级。与此同时,开源维护者普遍过度工作且资金不足。大多数项目的中位数维护者人数仅为一人,“很多项目是我们利用业余时间或作为爱好在维护,或者是部分有偿的;‘资金不足’几乎是每个开源项目的代名词。”总有做不完的事,许多维护者还在与职业倦怠作斗争。
AI如何降低了安全报告的门槛
在AI出现之前,提交一份有价值的安全报告是有门槛的。报告者需要投入大量时间和精力进行挖掘,维护者也会花时间认真评估。但AI改变了这一切。现在,让LLM去找问题变得超级简单,尝试的成本几乎为零。“要求它(AI)把报告写得吓人一点,它就会照做。然后你直接把那份报告发出去就行。”很多人真诚地认为,既然ChatGPT找到了问题,他们就有责任上报。
Stenberg分享了他如何识别AI生成的报告:首先,语气过于礼貌。“从来没有真人会在报告开头写‘我很抱歉,但我发现了一个问题’。绝对不会。”长期参与开源的人都知道,报告通常来自那些有些沮丧甚至生气的人。另一个迹象是,AI报告“通篇都是完美的英语”,并且经常在标题中使用标题式大写(Title Case),而非人类惯用的句子式大写(Sentence Case)。当然,“每个段落都需要列出三个要点”,而且报告长得离谱。过去,维护者常常需要引导报告者提供更多信息;现在,当你向报告者提问时,得到的回应往往是:“‘完全正确,我很抱歉。是我的错,我误解了。’接着是一堆废话。”现在的状况是,维护者最终是在与一个机器人的代理进行交流,“这永远不会有好结果。”
一个荒诞的“HTTP/3漏洞利用”案例
为了说明问题,他提到了自己最“喜爱”的垃圾报告案例之一。这份报告于2025年5月通过HackerOne提交,报告者声称在curl 8.13.0中发现了“一种利用HTTP/3协议栈中流依赖循环的新型漏洞”。Stenberg说,这份报告看起来非常专业,包含了概念验证(PoC)、环境设置、GDB输出等。
然而,这一切都是假的。报告中提到的函数在curl中根本不存在,连GDB会话记录都是伪造的。“我想那时候我还是有点缺乏经验,所以在它上面浪费了太多时间。”
那是AI垃圾报告时代的早期。Stenberg现在将这种发送AI生成安全报告的行为称为“恐怖报告”。过去,他估计每六份报告中就有一份是真实的安全漏洞。现在,这个比例降到了二三十分之一。这完全是对curl团队时间和精力的巨大浪费。当然,curl并非唯一受此困扰的项目。Stenberg表示,自从他开始公开谈论AI垃圾报告问题后,许多其他项目也向他表达了同样的烦恼。
他推测,就curl而言,人们这样做是为了钱。历史上,curl提供过漏洞赏金,低危漏洞奖励500美元,高危漏洞最高可达1万美元。“那就像是某种白日梦;这就是为什么每份报告都被标记为‘关键’的原因。”
治标不治本的尝试
Stenberg列举了他尝试过的几种确保报告来自人类的方法。他增加了一个提交表单,要求报告者声明是否使用了AI。这在前三四份报告中起了作用,之后人们就不再承认了。他尝试封禁使用AI的报告者,但如果用户第二天就能轻松创建新账号,这就毫无意义。他尝试过公开羞辱,这起到了一点作用,但不足以杜绝此类报告。最终,curl于2026年1月终止了其漏洞赏金计划,因为垃圾报告的数量实在过于庞大。
然而,问题其实不在于AI,而在于人。“AI让提交报告变得异常容易,如果营销宣传说这行得通,只要它非常容易且成本极低,人们就会继续这样做。”他希望取消赏金能减少垃圾报告,但“我们得看看这是否真的会实现”。2月4日,他在Mastodon上发帖称,早期数据显示“关闭漏洞赏金可能不会有太大区别”。
AI作为工具的另一面
尽管有这些糟糕的经历,Stenberg对使用AI本身仍持开放态度,因为它终究只是一个工具。如果一个人自己不去验证,只是要求AI寻找安全问题,“你就会得到非常愚蠢的东西”。但如果使用者足够聪明并善用工具,“你就能做出非常棒的东西。所以我们现在正与几个AI驱动的代码分析工具合作。”
Stenberg指出,虽然AI在某些方面很糟糕,但在另一些方面却异常出色。在多年与C语言打交道的生涯中,他为了寻找bug尝试了各种方法:严格的编译器选项、代码分析器、模糊测试,甚至是安全审计。当然,用户也会报告他们发现的bug。但是,通过使用AI工具,他发现了一百多个被其他所有方法漏掉的bug。尽管这些工具“有时以一种近乎神奇的方式”发现缺陷,但仍需要一个聪明的人来判断这些发现是否真实、有效且重要。
他说,AI工具能发现人类发现不了的东西。例如,工具可能会检测到代码的变更与相关的注释不一致。“这听起来可能是一件很细微的事情,但它很棒。[…] 如果文档是错的,那么代码中该函数的使用者就可能出错。”它非常适合检测边缘情况或发现代码与规范不符之处。人类也能发现这些,但人类会感到厌倦。人类在代码审查方面的表现确实不佳,而机器既不会厌倦也不会疲劳。
此外,它在分析其他库方面也非常出色。例如,你从代码中调用第三方库的函数,它可以告诉我关于我对它返回数据的假设,这也是普通代码分析器无法做到的,因为普通代码分析器只分析你的代码,而不分析其他代码或它们之间的交互。所以这确实是令人着迷的工具。它确实开启了一种改进代码、使事物变得稳定和更好的新方式。
Stenberg对使用AI来编写代码并不感冒。他认为AI的代码编写能力并未给他留下深刻印象;即便机器发现了一个bug并提出了修复补丁,这些补丁也从来都不够好。“人类修复代码的能力比AI强得多。”
他补充说,如果不提及爬虫机器人过载问题,关于AI的讨论就不完整。curl项目有内容分发网络赞助商,因此每月75TB(大部分由机器人生成)的流量不会损害项目本身。但其他项目就没这么幸运了。“这无疑给很多项目带来了严重问题。”
Stenberg总结道:“归根结底,这都取决于你如何使用它。”总有一部分用户很烦人,而现在他们有了工具,能以新的方式制造垃圾信息。“AI将继续在不同方向上增强我们所做的一切 […] 至少在我们要开始为它的实际成本买单之前是这样。然后我们再看看会发生什么。”
问答环节
尽管听众们经历了漫长的FOSDEM周末,但提问环节依然活跃。第一位听众想知道接受AI生成的代码是否存在法律风险。Stenberg表示,代码贡献本身就带有不确定性。它可能由贡献者编写,由AI生成,或是从Stack Overflow等处复制而来。“我认为风险大致相同。”
另一位与会者表示,他们的项目从未设立过漏洞赏金,但“这些美妙的安全报告”却增加了600%。他们想知道在这种情况下该如何处理,毕竟他们没有赏金计划可以关闭。Stenberg说方法有很多,但不幸的是,每一种限制报告的方法都意味着会让整体提交报告变得更加困难,这令人遗憾。
尽管Stenberg的演讲主要聚焦于AI工具对curl项目乃至更广泛的开源维护者带来的负面影响,但他的展望并不完全是悲观的。观察关闭漏洞赏金对curl的后续影响,以及随着维护者们持续发声,情况是否会有所改善,将是一件有趣的事情。
社区讨论概述
在相关技术社区,读者们深入探讨了AI生成报告泛滥背后的经济学逻辑以及潜在的解决方案。有观点指出,对于想要刷简历的学生而言,利用AI生成“贡献”的收益远高于成本,这导致维护者面临巨大的审查压力。对此,有读者提议通过引入提交押金机制——即对报告提交收取小额费用,但对被采纳的真实报告给予双倍返还——来利用经济门槛过滤低质量报告,甚至可能将其转化为项目的资金来源。
本文基于 LWN.net 文章进行编译与再创作,原文遵循 CC BY-SA 4.0 许可协议。技术世界的纷繁复杂,正是我们深入探讨的动力。更多关于AI、安全与开源生态的深度讨论,欢迎访问云栈社区与广大开发者交流。