948 个洞挖出来了,先处理了 104 个

cover

Hello,我是飞飞。

做一个能拿到 root 权限的漏洞,现在只要 1,279 美元。root 说人话,就是一台机器上最高的那把钥匙。OpenAI 在 11 月 4 号公布了一轮运行:一条流水线扫 Linux 内核,产出 1,169 套能用的本地提权利用,归并成 948 个独立漏洞,总账单 121.3 万美元。

本地提权,说的是人已经在这台机器里了,再想办法爬到最高权限。

你要是只看到这个数,很容易把它当成别人家的攻防游戏。可同一份结果里还有另一个数:到发布那天,已经修好或者正在修的,只有 104 个。

把洞做便宜的那一侧,机器已经跑通了。卡住的是另一侧,那个要有人点头说「这条是真的、这个补丁能进」的位置。我更在意这一侧。

一轮怎么跑出 948 个

这条流水线先挑地方。你可以把内核想成一栋楼,它先走普通住户进得去的那些楼梯间和走廊:5,034 个审计目标,大约 280 万行代码,占整个内核的 7%。能被低权限碰到的代码先筛一遍,后面的数字才有意义。

12 小时里,分析代理给出 2,308 条去重后的候选。

候选不等于漏洞。验证代理在 30 小时内,把其中 1,724 个真的复现了出来。

复现之后才轮到利用。换成画面,就是你手上只有一个普通账号,在终端里敲下几行,提示符从 $ 变成 #。

这一步的靶机是标准桌面发行版,SMEP、SMAP、KASLR、HARDENED_USERCOPY 这些防护全开着。这一串名字你不用记,它们都是内核防提权的锁。锁全装着,这些利用照样跑通了。

代理交出来的,是 291 个信息泄露的样本,和 1,169 个能用的本地提权利用。据报道,抽样的 166 个利用里,至少用到 10 种此前没有记录的 Linux 利用手法。

1,169 和 948 对不上,是因为一个漏洞可能写出好几种利用。把变体归并,按「关掉它需要哪个补丁」去重,得到 948 个独立漏洞,同时生成 948 份候选补丁。

交到人手上的东西很完整。每个漏洞配着根因分析、能稳定触发的最小崩溃样本、候选补丁,再加一整套利用,让评审的人不用从零判断这条报得对不对。

这里要把话说死:948 是独立漏洞数,也是候选补丁数。它不等于已经合进内核的补丁数,合进上游的只有 61 个。

三个月,单价降了六成

单看 948 这个数,容易麻木。把它和上一次比,才知道发生了什么。

7 月底,同一套装置换 GPT-5.6 Sol 跑,拿到 166 个独立 LPE,账单 513,690 美元。摊下来,一个约 3,095 美元。

10 月中旬这一轮,948 个,1,213,430 美元。一个 1,279 美元。

数量是 5.7 倍。单价从 3,095 掉到 1,279,降了大约 59%。

两次扫的都是当时最新的内核主线,中间隔了三个月,这三个月里内核还做了一轮加固。按常理,同一块代码被扫过一遍、又加固过,第二次应该更难出活。结果是反过来的。

再往前看一步。6 月 Patch the Planet 刚起步的时候,同一类工作只跑出 24 个 LPE 概念验证。四个月,从 24 到 948。

真正该盯的数在这儿:找出一个洞的成本,还在往下走。

一个洞比一份赏金便宜

这个成本意味着什么,拿赏金一比就清楚了。

Pwn2Own 历史上给 Linux 内核本地提权的赏金是 2 万美元,TyphoonPWN 是 7 万美元。把这两个价套到 948 个利用上,OpenAI 自己算出 1,890 万到 6,630 万美元,是这次运行成本的 16 到 55 倍。

这个比较要留个尾巴。赏金买的是「新的、没公开过的」利用,还带比赛和评审成本,不等于量产价。它更像一把尺子,量的是这个东西过去被估成多少钱。

而那个估价,过去一直被解释成「太难」。现在难的那一头被机器抹平了,差价就露出来了。

还有个尺度更直观。kernelCTF 是个缩减了攻击面的内核靶场,这条流水线在那儿拿到 21 个 LPE。而截至发文,kernelCTF 在 2026 年接受的确认 0-day LPE 是 26 个。

一轮,接近这个靶场今年到目前为止的确认量。

环境不一样,不能直接相减。但量级摆在这儿,产能到哪了,看得见。

卡在谁来点头

回到那 104 个。

据 Crypto Briefing 转述,61 个已经在上游修好,43 个在分阶段走补丁流程。剩下八百多个,还在等。

OpenAI 自己的说法是,按内核社区的建议,先报严重的,剩下的跟合作方分批提交。这话听着负责,也等于承认了一件事:报得快,报不完。

等谁?据 Startup Fortune 的报道,Trail of Bits 的工程师先签字,补丁才会进维护者的收件箱。这道人工程序写在流程里,省不掉。

而收件的那一头,早就满了。

据 Tom’s Hardware 报道,网络维护者 Jakub Kicinski 在 Linux 7.3 的网络补丁请求里估过一笔:那个周期处理的 648 个网络补丁,三分之一到一半是 AI 驱动的低优先级修复或清理。他写的是「我们完全被淹没了」。

同一篇报道里,Linus Torvalds 在今年 5 月说,内核的私有安全邮件列表「几乎完全无法管理」,原因是不同的人用同一批工具找到同样的东西,各自提交一遍,而私有列表上谁也看不到别人报过什么。

据 LWN 等转述,稳定版维护者 Willy Tarreau 给过一组对比:两年前这个列表每周收 2 到 3 份报告,今年是每天 5 到 10 份。

CVE 的数量也跟着涨。据报道,每个内核版本的 CVE 从 6.x 时代的大约 500 个,涨到现在逼近 2,000 个;今年还出现过单个周末披露 432 个的情况。

所以 948 个洞落到地上,不会变成 948 个补丁。它会变成别人收件箱里的一摞待办,而那个收件箱的主人,手上已经有一摞了。

我的流水线也卡在这

写到这儿我想起自己那套东西。

我有一条写文章、配图、分发的流水线,八个阶段全交给 agent。十篇一批跑过一回,64 次 agent 调用,270 万 token。

十篇里有八篇停在评阅那一关,卡在轮次上限上,等我拍板。产出早就堆在门口了,门在我这边,人不在。

后来我改了两处:评阅只跑一轮,而且分数不再拦发布。

我把那扇门拆了。因为门后面是我自己的文章,写坏了删掉重发,代价我付得起。

内核不能这么干。门后面是所有人的机器。拆了它,代价是有人被提权。

同一个形状,两种处置。便宜的是产出,贵的从来是那个点头的人,而且这个人不在模型的预算里。

这跟你有什么关系

先说清楚,这 948 个洞不是远程打穿。

本地提权要你先有一个立足点:一个登录进去的普通账号,一段能在机器上跑的代码,一个被拿下的服务。人已经在院子里了,这一步是往上爬。

所以对大多数普通开发者,这次发布的直接威胁没有标题看起来那么大。没人会专门为了一台陌生人的博客服务器,去跑这么一轮。

真要打你,这条流水线帮不上太多忙。最难的一步是先在机器里找个立足点,这一步的价钱这次没有降。

会变的是另一件事。一件东西从「专家干几个月」变成「一条流水线跑一轮」,它就不再是定制品了。定制品只打值得打的目标,消耗品会进到批量工具里。这一步什么时候发生,OpenAI 没说,我也不猜。

眼下能做的判断只有一个,而且很朴素:看到「披露了 N 个漏洞」,先去问这 N 个里有多少进了稳定版。

「已报告」和「已修复」中间隔着一整个人的带宽。这个带宽不会因为模型变快而变宽。

回到开头那个 1,279 美元。它买到的是一个能用的利用,也顺手把「太难了」这三个字从成本表上划掉了。难题没有消失,只是换了个位置,挪到一张桌子上。桌上坐着几个维护者。

你手上那台服务器,上一次更新内核是什么时候?翻完回来留个日子,我想看看有多少人跟我一样,得先去翻记录。