安全#安全扫描#安全

修复 PR 公开 10 分钟即遭探测:AI 正在击穿开源漏洞披露

OCaml 维护者披露:cohttp 修复 PR 公开约 10 分钟即现匹配漏洞的探测,AI 数分钟内可把漏洞传言写成 exploit。

VulnCheck 的 KEV 2026 条形图:从 CVE 公开到出现利用证据的时间分布,最大的一档是 32–365 天

8 月 22 日,OCaml 核心维护者、剑桥大学计算机教授 Anil Madhavapeddy 在个人博客披露:HTTP 库 cohttp 路径穿越漏洞(编号 OSEC-2026-16)的修复 PR mirage/ocaml-cohttp#1145 公开约 10 分钟后,他自己服务器的日志里就出现了精确匹配该漏洞模式的探测请求。他在博客里推断,有自动化工具在盯着公开仓库的补丁流等线索。真正让安全社区重新审视协调披露流程的,是这条记录的另一半:据其自述,他的智能体用 DeepSeek V4 Pro 在不到一分钟内写出了针对本地测试服务器的可用 exploit。InfoQ 10 月 3 日的分析稿(中文版 10 月 13 日刊出)把这起 8 月的事件重新带回视野。

要点

  • 8 月 22 日,cohttp 6.3.0 修复 PR 公开约 10 分钟后,维护者的服务器日志出现按 percent-encoded 遍历序列逐一试探的请求,与漏洞模式完全吻合。
  • 同一过程中,Claude Fable 以安全限制为由拒绝帮他分析路径归一化问题,DeepSeek V4 Pro 照做,其智能体不到一分钟写出可用 exploit。
  • 博客引述的研究:2024 年 4 月提交的 arXiv 论文测得 GPT-4 拿到 CVE 描述时可利用 15 个一日漏洞中的 87%,没有描述只有 7%。

背景

传统协调披露的剧本,据 InfoQ 引述 Madhavapeddy 的原话,是「私下修复、通知受影响方、再发公开通告」,补丁在保密期内有时间扩散。这个前提正在被两头挤压。研究侧的背景数据是 arXiv:2404.08144(UIUC Daniel Kang 团队,2024 年 4 月):15 个一日漏洞里,GPT-4 有 CVE 描述时利用了 87%,无描述仅 7%,GPT-3.5 和 ZAP、Metasploit 等开源扫描器都是 0%——AI 把「会读通告」和「会写利用」接通了。工程侧的信号更直接:本站 10 月 4 日报道过 Google 暂停开源漏洞赏金,理由正是自动化提交淹没流程;披露时间差本身也是攻击面,本站 10 月 1 日报道的 Zimbra CVE-2026-73570 就是补丁先行三周、274 台服务器失陷。时间线:8 月 22 日一手博客,9 月 10 日 tl;dr sec #345 收录点评,10 月 3 日 InfoQ 英文分析,10 月 13 日 InfoQ 中文版。

事实经过

这起事件的完整链条在博客里有第一手记录。漏洞由 Sapphire Livingstone 发现并共同开发修复,报告经 Jane Street 在 Slack 上转来,而报告本身最初出自 Claude Fable 之手。这个路径穿越的修复并不复杂——把请求 URL 里 percent-encoded 的路径分隔符做归一化即可。Madhavapeddy 把 PR 公开,本意是「多几双眼睛」帮忙审查;约 10 分钟后,他的网站开始收到 percent-encoded 遍历序列的探测。之后他把代码指给 Claude 问路径归一化有没有问题,Claude Fable 因安全限制拒绝;换 DeepSeek V4 Pro 则照答,还独立找出几个相关缺陷,他的智能体不到一分钟就写出了探测本地服务器的 exploit。他在博客里整理的利用时间线如下:

线索公开出现利用数据来源
cohttp 修复 PR(2026-08-22)约 10 分钟后出现匹配探测Madhavapeddy 博客
marimo CVE-2026-39987 通告约 9 小时Madhavapeddy 博客
Langflow CVE-2026-33017 通告20 小时Madhavapeddy 博客
全行业平均利用窗口2018–19 年约 63 天,2024 年越过零点,如今约 −7 天Madhavapeddy 博客引述

三种缓解方案

博客用一半篇幅分析了三条出路,以及各自的局限。其一是把补丁开发挪进 GitHub 临时私有 fork:但 CI 与集成会被切断、只允许合并一个 PR、每位审查者要单独注册管理员权限;Madhavapeddy 的判断是这「堵错了漏洞」——要防的是描述性信息泄露,不是补丁文本本身。其二是持续发布、不做保密期:Linux 内核的推迟上限是 7 天(例外 14 天),Chrome 每周发两个版本;局限在下游,开源打包和重新分发链路跟不上这个节奏。其三是协议层虚拟补丁,让服务端先顶住——样板是 Cloudflare 2021 年为 Log4shell 上线的托管规则;局限是开源界在商业 CDN 之外没有这类规则的分发机制。

各方说法

安全研究者 Clint Gibler 在 9 月 10 日的 tl;dr sec #345 里点评这件事:「Within 10 minutes is insane(10 分钟,疯了)。」他整理的链条是:漏洞发现越来越快、打补丁和推广补丁依赖人工、而把线索变成 exploit 又太容易,几项相加就是负数利用窗口;他预计这会是「未来数月」的核心议题。据 InfoQ 报道,Chainguard 的 Adrian Mouat 说这让维护者陷入两难——攻击者可以在新版发布之前就部署 exploit,用户毫无还手;他甚至设想项目可能被迫「先发构建产物、后发源码」,而那会动摇开源的根基。同稿引 rclone 作者 Nick Craig-Wood 的数字:项目头十年收约 20 份安全报告,上个月就超过 40 份;QEMU 则已缩短漏洞保密期。这两处数字目前仅见于 InfoQ 稿。

编辑判断

对维护者,这起事件改变的假设是:PR 的 diff 推上去那一刻就该当作公开信息,修复描述、分支名、issue 里的只言片语都是可以利用的线索,协调披露需要按「会在几分钟内被武器化」来重新设计。对使用开源组件的团队,等披露周期已经不现实,能压缩的是自己的升级延迟和边界防护。诚实的 catch 也有:核心证据仍是一起个案,「10 分钟」是定向利用还是巧合的定时任务,博客没有结论,探测者身份也未查明;87% 那篇是 2024 年 4 月、用 GPT-4 做的小样本研究,不能直接外推到今天的模型。防御侧同样还在早期——博客结尾给的两个 MPhil 课题(反 bot 防御测试床、从 Lean 规约编译运行时强制自动机)说明工程化答案尚未出现。维护者与 AI 的张力也不止于披露这一环:QGIS 本月干脆全面禁止 AI 贡献(见此前报道)。