PHP 原本计划在 10 月 22 日晚间 10 点公开两个重大漏洞,但相关信息在 10 月 20 日晚间 11 点左右,已先在 Hacker News 等论坛与社交平台流传。发布时间随后被提前一天,改为 10 月 21 日晚间 10 点,原先约两个月的秘密协调也被打乱。
两个漏洞原定 10 月 22 日公开
这两个漏洞编号分别为 CVE-2026-109618 和 CVE-2026-109619,合称 PHP2Shell。根据文中描述,两者都可能让未登录的攻击者在运行 PHP 的服务器上执行自己的程序。
这次安全协调由 OpenAI 牵头。OpenAI 在文章中称,过去两个月一直在带领维护者、研究人员和安全厂商组成的联盟处理此事。
PHP 基金会成员 Alexandre Daubois 在个人博客中写道,10 月 20 日当天出现了多处泄露。最早是一则 Hacker News 匿名帖文,内容引用了「可靠来源」,该帖后来被删除,但截图已经传到 X 和 Mastodon。与此同时,一张标注 Calif.IO 的 PHP2Shell 工具截图也在外部流传。
协调过程从 7 月底开始
按时间线看,这起事件可追溯到 7 月 30 日。当时安全公司 Calif 在 OpenAI 的 Patch the Planet 计划下对 PHP 进行审计。8 月 11 日,Calif 与 OpenAI 在同一天分别报告了同一个根因。PHP 基金会在后续说明中提到,这个根因在 2024 年就已经出现过征兆。
到了 9 月 25 日,修补的 pull request 已经提交。Daubois 表示,这次修改涉及 390 个文件。
提前获知信息的范围并不小。OpenAI 表示,它一边与维护者和研究伙伴测试修补、准备指引,一边协调基础设施提供方提前部署防护,同时也联系了白宫超级智能工作小组、国家网络总监办公室(ONCD)、美国网络安全主管机构 CISA 以及国际合作伙伴。
此外,Linux 发行版和 LTS(长期支持)厂商也提前拿到了修补,以便用户在公开当天就能更新。
不过,OpenAI 没有公开完整名单和参与人数,只表示名单由维护者决定。按照 OpenAI 的框架,不同参与者获得的信息并不相同,范围从网络记录到可实际运行的攻击程序都有。OpenAI 也承认,即便只分享有限细节,也可能暴露漏洞,因此需要在信息共享风险和防护收益之间做取舍。
泄露后,发布时间先改到 10 月 21 日
10 月 21 日凌晨 3 点 30 分,php.net 提前发出预告,将发布时间改到当晚 10 点。PHP 基金会事后解释,没有立刻发布,是因为各发行版仍在打包修补,如果马上公开,很多用户将没有简单的更新渠道,因此提前一天是折中方案。
预告原文同时写明,如果细节已经公开,或者出现实际攻击,官方保留继续提前发布的权利。
凌晨 4 点左右,回报者之一 Calif 据称又误发了一段视频,展示 PoC 对多个目标运行的情况,也让外界看到了更多有限细节。虽然视频随后被删除,但副本已经在社交平台传播,进一步加快了各类 PoC 的出现。
PHP 基金会称,从早上 7 点左右开始,官方已向少数关键基础设施厂商提供缓解建议,这部分内容也可能发生了外流。基金会表示,他们持续监看外流的 PoC,在正式发布前没有发现可用的攻击程序。
Chainguard 提前发布镜像引发争议
争议最大的节点出现在下午 3 点 41 分。Chainguard 比原协调时间提前超过 6 小时,发布了包含修补的镜像文件,也就是已经预先打包、可直接部署的运行环境。
PHP 基金会称,这属于「单方面打破禁运」。基金会的说法是,参与方此前约定在公开前不得发布相关内容,而攻击者可以通过二进制文件逆向分析修补内容,其他 PHP 用户却仍在等待正式更新,这等于无视多方数周的协调工作。
Chainguard 首席执行官 Dan Lorenc 则在 Hacker News 留言回应称,他一直在与团队协调,但「实际环境出现攻击时,我决定提早放出」,并表示这些镜像是免费提供的。
围绕这一点,双方说法并不一致。PHP 基金会表示,在发布时没有看到可用的攻击程序;Lorenc 则称,外部已经出现攻击。
最终,PHP 8.5.12、8.4.27、8.3.36 和 8.2.35 在 10 月 21 日晚间 10 点按新时间表发布。
OpenAI 框架中的触发条件已被实际触发
OpenAI 提出的协调框架中有一项明确写到:如果出现实际攻击、信息泄露,或公开修补本身会暴露更多细节,就应重新评估发布时间。PHP 这次将发布时间提前一天,正是按这一条件执行。
在文章结尾,OpenAI 还向社区征求意见,其中一个问题是:漏洞协调应采用分阶段通知,还是一次通知更多参与者,以及该如何在覆盖范围和信息泄露风险之间取得平衡。
这次 PHP 事件,正好成了这一问题的现实案例。OpenAI 的文章没有提到泄露过程、Calif 的视频或 Chainguard 的提前发布;而 Calif 本身是 Patch the Planet 计划的合作单位。
从结果看,这次泄露打乱了原定时间表,但没有改变网站运营方需要做的事:按已发布版本完成更新。


