页面内容

你所运行的软件几乎可以肯定充斥着已知但未修复的安全漏洞。现代AI智能体可以轻而易举地快速利用这些漏洞。这并非仅仅是理论;我在自己的 沙箱逃逸研究,而稳定版软件中的一个旧漏洞被用作 最近披露的OpenAI黑客事件:

“OpenAI hack exploit chain”
根据官方黑客事件描述

简单来说:你正在运行的任何东西,几乎都肯定很容易被先进的人工智能攻破。幸运的是,有解决办法,而我们(不只是Trail of Bits,整个安全行业都是如此)正在着手解决。但首先,我们是怎么走到这一步的?

稳定性与安全性

软件难免有缺陷,其中一些与安全相关。我们会在力所能及时修复它们,而修复首先出现在最新版本的软件中。不幸的是,这往往也是 唯一 进行修复的地方。将修复从最新源代码移植到旧版本的过程称为“回移”(backporting)。

知名软件的严重漏洞修复确实常常会被迅速回移。但对于许多其他漏洞,回移流程从未发生。原因不难理解:软件打包工作往往由已经超负荷的志愿者完成,而回移是令人沮丧、吃力不讨好、既得不到多少认可也缺乏曝光度的工作。对于由志愿者团队支撑的开源项目来说,回移(可以理解地)优先级很低。

缺乏回移是个问题,因为几乎没有人会运行用当今代码改动刚刚构建出的最新最强软件版本。人们 绝大多数 更倾向于稍旧、经过更多测试、以“长期稳定”版本形式打包的软件。例如, 约95% 的 Ubuntu Linux 安装属于长期支持(LTS)版本。当查看 Debian 的 流行度统计,绝大多数都基于较旧的稳定分支:

“Codex-generated graph of recently installed kernel packages from Debian’s popcon”
这是 Codex 生成的图表,展示了 Debian popcon 中近期安装的内核软件包。绝大多数(约 96%)是较旧的稳定版本,而非最新的内核系列。

这让用户陷入两难:他们要么继续使用稳定、熟悉但存在安全漏洞的软件版本,要么升级到修复了这些漏洞、却引入了其他改动和新功能的新版本,而这些改动和新功能可能并非他们想要的。

我们本不该被迫做出这种选择。

视而不见

就在三年前,我们还可以把头埋进沙子里,假装问题并不存在:回移所有修复确实是一项困难而耗时的工作,而且任何攻击都极不可能发生。

如今,这两个假设都不成立了。一群具备网络攻击能力的AI智能体可以像热刀切黄油一样,轻松穿透由稳定、已知存在漏洞的软件构成的网络。从积极的一面看,AI已大幅减轻了识别与回移安全相关漏洞的负担。

当然,我们应该假设所有软件都有缺陷(因为确实如此),并运用我们在计算机安全课程中学到的经验:强制访问控制、代码完整性检查、沙箱和权限分离。这确实有效。移动平台因为强制执行这些标准而安全得多。但桌面和服务器平台并不强制要求这种行为,也很少有平台自愿启用这些防护措施。 是的,每个人都应该更新到最新软件。但许多人故意不更新到新版本。我认为这种普通终端用户行为是 完全合理的就在最近,我把我的 Mac 更新到了 macOS 27,结果一台多年来一直运行良好的打印机却无法使用了(直到 Codex 第一次尝试就编写出了一个兼容的新打印机驱动)。

无论如何,假设某些东西可能存在缺陷并且应当被控制住,是一种良好的做法;放任已知且易于修复的缺陷不管,就是失职。所以,让我们把所有修复都回移吧!

安全负债的核算

让我们量化一下问题的规模。为了便于计数,我们可以只关注那些已分配 CVE、在最新版本中已修复、但在稳定版软件包中缺失的已知漏洞。在这个例子中,我们将考察 Linux 内核、Ubuntu 26.04 LTS 和 Debian 13 Stable。我并不是在单独点名这些项目——它们都运营得非常好!我之所以使用它们,是因为它们有相关文档,并且对未修复的 CVE 有记录。 其他项目缺乏这种透明度。解决问题的第一步是知道存在问题。

我们来看看 Linux 内核各稳定分支中未修复 CVE 的数量。下表显示了每个受支持的稳定分支中尚未在该分支修复、但在较新分支中已修复的 CVE 数量。(因此,按定义,较旧分支的未修复 CVE 更多。)数据来源是 内核 CVE 团队的 vulns.git 截至2026年9月18日。这不是确切的缺陷数量,因为由于若干技术细节,它既会多计也会少计。它也不是可利用性的衡量标准。相反,它是一把标尺,表明大量已知CVE尚未在稳定内核分支中得到修复:

分支未修复的 CVE具有 NVD 评分的 CVE 百分比高或严重
5.10.y2,00655.8%213 (19.0%)
5.15.y1,88951.5%195 (20.0%)
6.1.y1,32943.9%99 (17.0%)
6.6.y1,01235.6%65 (18.1%)
6.12.y68622.3%21 (13.7%)
6.18.y33715.1%3 (5.9%)

软件包层面的情况也好不到哪里去。以下是在 Debian 13 和 Ubuntu 26.04 中被报告为未修复或受影响的非内核 CVE(原始数据来自各自的 各自 CVE 数据源,由 Codex 汇总)。这些是发行版元数据中的发现,并非逐一经源码确认的漏洞。再次强调,这并非精确的缺陷数量,而更像一把标尺,用以表明稳定版软件包中仍有多少未修复的漏洞:发行版存在未修复 CVE 的源码包数量唯一 CVE 数量高或严重级别 Debian 131,1284,5621,822 (39.9%) Ubuntu 26.041,028770335 (43.5%) 修复这些缺陷我们意识到这是一个问题,并一直在积极修复它 (CVE 数据源,由 Codex 汇总)。这些是发行版元数据中的发现,并非逐一经源码确认的漏洞。再次强调,这并非精确的缺陷数量,而更像一把标尺,用以表明稳定版软件包中仍有多少未修复的漏洞:

发行版存在未修复 CVE 的源码包唯一 CVE高或严重级别
Debian 131,1284,5621,822 (39.9%)
Ubuntu 26.041,028770335 (43.5%)

修复这些缺陷

我们意识到这是一个问题,并一直在主动修复它。首先,我们从相当于在人行道上捡到 20 美元的事情做起:有些针对已知 CVE 的缺陷修复可以干净地应用到稳定内核树上,但修复从未被合入内核。我们使用 Codex 配合 GPT-5.6 找出这些修复,并请维护者应用现有补丁。 他们慷慨地照做了,目前稳定树中已应用代表 90 个 CVE 的 142 项修复; 我们后移移植追踪器上的清单还在不断增长我们现在正在回移补丁,从最容易验证和审查的补丁开始,并逐步转向更复杂的改动。

我们也对 Linux 发行版做了同样的工作:我们使用 Codex 和 GPT-5.6 找出随稳定版软件包发布的已知漏洞,然后回移并验证修复。我们已开始向 Linux 发行版提供首批补丁。如果你运营开源项目或 Linux 发行版,并希望获得回移安全修复方面的帮助,请在 trailofbits.com/patch-the-planet 我们将很乐意提供帮助。

不增加功能的稳定软件的一大优势在于,理论上我们可以在坏人之前修复所有漏洞。所以,让我们继续为这个星球打补丁吧!