AI 让漏洞好找了,开源项目的补丁却成了线索

PHP 的修复镜像比约定时间早六小时放出,开放权重模型 GLM 5.3 读着 Firefox 尚未推送的修复攻破了六个版本。两件事指向同一个变化:找漏洞越来越便宜,从修复公开到用户装上新版的这段空窗期,成了开源项目的安全瓶颈。Mozilla 已经改了发版流程,但这些办法要钱、要人,也要让出一部分透明。

提前六小时的镜像

10 月 21 日 07:41 UTC,软件供应链安全公司 Chainguard 发布了一批 PHP 容器镜像,里面带着两个远程代码执行漏洞的修复。按照 PHP 项目与各发行方约定的协调披露计划,这次修复要到 14:00 UTC 才正式公开。PHP 基金会当天在事后说明里写道,Chainguard 是“单方面打破了禁令”,此后“任何攻击者都可以研究二进制形式的修复,而其他所有 PHP 用户还在等待发布”。

八天后,类似的问题出现在 Firefox 身上,读补丁的换成了一个开放权重模型。10 月 29 日,研究机构 Epoch AI 发布报告:Z.ai 在 8 月发布的 GLM 5.3,读取 Firefox 已经公开、但还没推送给用户的安全修复,为 9 月 17 日到 10 月 26 日之间发布的全部六个 Firefox 版本各写出了一个攻击网页。用户只要打开页面,本机文件就会被读取并发给攻击者。同一天,Mozilla 发文回应,宣布要改发版流程。

这两件事看上去不相干:一件是厂商之间关于“谁破坏了禁令”的争执,一件是关于开放权重模型有多危险的研究。放在一起看,它们说的是同一个变化。AI 让找漏洞变得便宜,开源项目修得更多,而每一个公开的修复都在告诉外人漏洞在哪里。补丁从写好到真正装到用户机器上的这段时间,安全行业叫它“补丁空窗期”(patch gap)。现在,开源项目的安全瓶颈正从“找漏洞”移到这段空窗期上。

能缩短空窗期的办法,Mozilla 和 Epoch 都列了出来:更快发版、把修复藏到发布前、错开不同类型修复的公开时间。这些办法要钱、要人、要多层沙箱这样的架构基础,还要牺牲一部分开源项目习惯的公开透明。Mozilla 自己也承认,互联网上的大部分软件“没有这样的准备”。

一个补丁能泄露多少

Epoch 的实验设定刻意压低了门槛,目标是模拟“资源有限、技术不算老练的攻击者”。研究人员只告诉 GLM 5.3 目标 Firefox 的版本号,给它一些基本工具,再提供目标版本发布当时就能公开获得的信息,并指示它去看尚未进入正式版的漏洞修复,然后让模型自己跑,不联网,也不再给提示。模型自己挑出哪些代码改动是安全修复,选漏洞,搭利用链。Epoch 写道,Firefox 发布的安全修复本来会伪装成普通改进、不写漏洞细节,但 GLM 5.3 “能读懂代码,判断哪些改动与安全补丁有关”。

报告给出的成本数字很具体。Epoch 针对 Firefox 的研究总共花了超过 10 万美元的 API 费用,其中大部分用在搭建离线环境和前期试验上;环境搭好之后,每多攻破一个 Firefox 版本,边际成本约 1000 美元。研究人员给每次尝试最多 48 小时,最快的一次用了 12 小时。整个过程没有触发任何服务商的拦截或拒绝,包括 Z.ai 自己的 API。

Mozilla 的回应文章由 Bobby Holley 署名,里面有一句话把这件事和前沿模型联系了起来:有证据表明,GLM 5.3 这样的模型“可以利用一些修复,而这些修复针对的漏洞最初是由更先进的模型发现的”。

这句话描述的是一种传导。按 Epoch 的梳理,前沿实验室今年先把最强的找漏洞能力开放给部分防守方,同时严格限制更大范围的使用。Mozilla 说,Firefox 团队从 2 月开始借助 Anthropic 和 OpenAI 的前沿模型排查漏洞,到目前修复的安全问题数量是 2025 年同期的七倍多。10 月 27 日发布的 Firefox 159 的安全公告列了 167 个 CVE,其中 108 个为高危,41 个署名来自 OpenAI,其中 34 个署名为“OpenAI Codex Security (kylebot)”。这里有一个口径变化:Mozilla 在这期公告里改了做法,不再把内部发现的内存安全问题合并成一个 CVE,而是每个漏洞单独编号,所以 167 这个数字不能直接和旧版本比。

前沿模型找得越多,修复就越多;修复一旦进入公开代码库,就成了能力弱几代的开放权重模型也能读懂的线索。防守方靠受限访问换来的先手,有一部分会在补丁公开之后流失。

PHP:连“有漏洞”这个消息都是线索

PHP 的情况更进一步。按 PHP 基金会的说法,10 月 20 日约 15:00 UTC,两个 CVE 编号先在论坛和社交媒体上流传,带着错误的发布时间和错误的 10.0 分评级,“没有泄露技术细节”。PHP 当晚把发布提前了一天。随后,参与发现漏洞的安全公司 Calif 误发了一段演示视频;PHP 给少数关键基础设施提供方的缓解建议可能也流了出去。

CDN 公司 Fastly 的遥测记录给出了时间线:10 月 21 日 03:59 UTC 出现第一个以“PHP2Shell”命名的工具,05:11 出现流传最广的利用工具包,两者都早于 Chainguard 07:41 的镜像。到 14:00 正式发布时,已有超过 100 个来源 IP 用过这类工具。Fastly 写道,它“不会推测是什么促成了某个工具”。

Chainguard 首席执行官 Dan Lorenc 不否认时间线,但对 The Register 表示公司“没有泄露”。他说,Chainguard 在 10 月 16 日从一位研究人员那里听说 PHP“有东西要来”,当晚就用自家的 AI 工具和一个前沿模型独立找到了同样的漏洞。他的判断是:“只要被告知某个软件里有漏洞,哪怕是 PHP 这么大的软件,就足以把它找出来。”他决定提前发布,理由是其他厂商报告已经出现在野利用:“这是协调漏洞披露,除非有在野利用的证据。”PHP 基金会的说法不同:截至正式发布,安全团队“没有发现任何可用的利用代码”。

双方争的是这一次该不该提前。但 Lorenc 那句话如果成立,意味着禁令能守住的信息越来越少:补丁是线索,CVE 编号是线索,“PHP 有一个严重漏洞”这件事本身也是线索。

修复为什么慢

PHP 基金会的说明里还有一段很少见的自我批评。导致 CVE-2026-109618 的内存不足(OOM)问题,2024 年一次外部审计期间就被一位 PHP 核心开发者发现了苗头。安全团队提出了几种修法,各有代价:破坏向后兼容、引入新的拒绝服务风险,或者要求大量第三方扩展跟着改。团队按共识决策,懂引擎的人又少,修复“反复停滞、重启了好几个月”。基金会写道:“我们不会假装不是这样:这次拖延是一个结构性失败,原因既在安全团队的决策流程,也在资源不足。”

AI 也让报告数量上涨。基金会说,7 月 1 日以来 PHP 安全团队发布了 15 个 CVE,同时处理了 100 多份无效、重复或无法复现的报告。它的判断是,工具能更快找到漏洞,但“不能决定一个长期设计问题该怎么修,不能权衡兼容性,也不能审补丁”。

这和 Firefox 的情况对得上。找漏洞的成本在下降,修漏洞、审补丁、协调发版的成本没有跟着下降,而每拖一天,已经公开或半公开的线索就多一天被利用的时间。

Mozilla 的办法,和它的代价

Mozilla 列出的已有措施有三条:今年早些时候把发版周期缩短一半,每周向用户推送新版本;把回归测试重新改为修复发布前保密,因为 Mozilla 观察到,没有回归测试时 GLM 5.3 的效果“差得多”;扫描每一个合入 Firefox 代码库的新提交。

它宣布的新做法更依赖架构。Firefox 有多层沙箱,攻击者至少要把渲染进程漏洞和沙箱逃逸串起来才能得手。Mozilla 打算把不同类别的修复分组,让它们的空窗期不重叠:任何时刻,空窗期里只露出攻破浏览器所需的一种“原料”,另一种必须从零找到。Mozilla 说,这需要协调多个工程流程,“可能需要一些时间”。

每一条都有代价。保密测试意味着外部贡献者在修复发布前看不到完整的改动理由。GitHub 给开源项目提供的“临时私有分叉”可以私下修漏洞,但文档写明,为了保密,包括 CI 在内的集成都无法访问这个分叉,状态检查也不会运行。每周发版需要稳定的自动化测试和发布团队。错开空窗期的前提是代码本身分了层,一个漏洞单独不够用。

Mozilla 在文章结尾写道:“不幸的是,互联网上的大部分软件没有享受过这些准备,现在暴露得更深。”它同时在脚注里表态,隐藏源代码“充其量只是减速带”,因为现代工具从二进制反推源码的能力越来越强,“Firefox 以开源为荣,我们无意改变这一点”。

不该夸大的部分

Epoch 的结果有明确的边界。六次成功都不只靠空窗期:每一次,GLM 5.3 还要用到一个当时尚未公开的沙箱漏洞,这个漏洞是模型在每次尝试中自己重新找到的。Mozilla 已在 10 月 27 日的 Firefox 159 中修复了它;Epoch 说还没确认在 159 上能否重现,但认为难度应该会“大幅”上升。攻击能读取本机文件,Epoch 写明,在最近的 Firefox 版本上还没有实现任意代码执行。用同一套方法攻击 Chrome,Epoch 又花了约 10 万美元,至今没有成功,不过它也说,这不能排除换一种引导方式或换更强的开放权重模型后能成功。

这是一项受控实验。两篇文章都没有报告有人用开放权重模型对 Firefox 实施过这种攻击。Mozilla 还认为,这类模型能在 Firefox 里挖到的漏洞“基本已经被清理干净”。Epoch 自己也写明,开放权重模型同样能帮没有前沿模型权限的防守方提前找漏洞,报告不对攻防平衡下结论。

对小团队意味着什么

对维护开源 AI 工具、推理框架或插件的小团队来说,这两件事给出的信号相当具体:不再能假设“修了就安全”。从修复合入公开仓库,到大多数用户装上新版本,在 Epoch 的实验里,这段时间被标上了价格:环境搭好之后,每个版本约 1000 美元。

Epoch 建议的几条做法,小团队多少都能用上一部分:修复在准备发布前不公开,从测试版到正式版尽量快,不要同时修多个能串成利用链的漏洞。Mozilla 的做法则说明了上限在哪里:每周发版、保密测试、提交扫描、按沙箱层错开修复,背后是一支能把安全修复速度提高到原来七倍多的工程团队。

PHP 基金会给的答案更直接:它在文末请依赖 PHP 的公司、托管商和发行方出钱,培养更多深入了解 PHP 引擎、能修复和审查补丁的工程师。找漏洞的模型可以按 API 计价,审补丁和发版的人目前还不行。

参考来源

媒体与第三方

  1. thephp.foundation · 引用于 2026 年 10 月 30 日
  2. AI can turn security fixes into working exploits before users receive an updateEpoch AI
  3. blog.mozilla.org · 引用于 2026 年 10 月 30 日
  4. mozilla.org · 引用于 2026 年 10 月 30 日
  5. fastly.com · 引用于 2026 年 10 月 30 日
  6. theregister.com · 引用于 2026 年 10 月 30 日
  7. docs.github.com · 引用于 2026 年 10 月 30 日