全球 70% 网站一夜告急,日本首相催打补丁!详解PHP暴雷事件始末
事件速览
10 月 21 日,PHP 官方紧急发布四个安全版本(8.5.12 / 8.4.27 / 8.3.36 / 8.2.35),修复两个 CVSS 评分均为 9.2 的高危漏洞。美国 NSA、英国 NCSC 相继发出警告,要求无法立即修复的网站直接下线。日本首相高市早苗也在 X 上向国民发出紧急通知,要求 21 日晚前采取行动。

这两个漏洞被安全社区统称为 PHP2Shell,编号分别为:
- CVE-2026-109618:PHP 处理内存耗尽(OOM)异常时,内部状态管理存在缺陷,可导致未初始化的数据结构被后续代码使用,引发内存错误。
- CVE-2026-109619:PHP 未正确清理上一次请求遗留的内存状态,导致"释放后使用"(Use-after-free),可造成进程崩溃或远程代码执行。
两个漏洞都位于 PHP 引擎的内存管理和错误处理核心路径,几乎每个请求都会经过。研究人员已在 Apache mod_php 默认配置下验证了无需身份验证的远程代码执行,攻击甚至可以在业务代码运行之前触发。
影响范围
PHP 作为服务器端编程语言,驱动着互联网上约 70% 的网站,超过 3300 万个站点。WordPress、Drupal、Joomla 等主流 CMS 均基于 PHP 构建。


漏洞被发现的完整时间线
这两个漏洞并非近期才出现的新问题,其根因已存在十余年。
2004 年:安全研究员 Stefan Esser 首次发现 PHP 内存限制机制中的远程代码执行漏洞,当时未公开完整利用程序。

2020 年:有研究人员向 PHP 官方报告编号 #78876 的问题,指出超长变量可导致内存耗尽和临时文件清理失败,但未引起足够重视。
2024 年:PHP 基金会通过 OSTIF 组织外部安全审计,由 Quarkslab 实施。一名核心开发者在修复审计报告时注意到 OOM 异常可能导致内部状态管理缺陷,这正是 CVE-2026-109618 的根因。但由于缺乏明确的利用路径,修复工作反复启动又停滞,PHP 基金会后来将这次拖延称为"结构性失败"。
2026 年 7 月:安全公司 Calif 受邀参加 OpenAI 的 "Patch the Planet" 计划,将 PHP 作为审计目标。借助 Stefan Esser 的历史研究线索,团队仅用几天就发现了可用于攻击 WordPress 的远程代码执行路径。
8 月 11 日:Calif 研究人员 Ryan A 向 PHP 安全团队报告了关键攻击路径;同一天,OpenAI 也独立报告了相同根因。
8 月 19 日:谷歌旗下安全公司 Wiz 使用 Wiz Atlas、Gemini 4 Argon 和 GPT-5.6 Sol,独立发现了第一项 PHP 安全漏洞,随后在 Drupal 和 WordPress 环境中验证了未授权远程代码执行。
9 月 18 日:OpenAI 再次报告新的攻击路径。
10 月 21 日:经过约两个月的协调修复,PHP 官方发布四个安全版本。
AI 的真实角色:辅助验证,而非自主发现
媒体宣传中常将这次事件描述为"AI 自主发现了漏洞",但事实更为克制:
- Calif 团队确实使用了 GPT-5.6 Sol 辅助分析,但研究方向是安全专家基于 2004 年历史经验确定的。
- Wiz 团队使用了 Gemini 4 Argon 等工具辅助漏洞发现和修复验证。
- OpenAI 官方明确表示,AI 只是发现漏洞过程中使用的一个工具。
AI 的核心价值在于缩短从"发现异常"到"证明可利用"的时间。传统上,构造完整、可靠的利用路径可能需要顶尖安全团队投入数月;如今借助前沿 AI 模型,一名研究人员在一周内就可能完成类似任务。
360 漏洞研究院专家指出,这次事件的难点不在于发现某一处孤立的内存错误,而在于理解不同请求之间复杂的状态变化。模糊测试和静态分析难以覆盖这类跨模块、跨请求的复杂逻辑,而大模型能够从代码语义入手,关联分析不同模块之间的关系,帮助研究人员识别潜在的异常执行路径。
但 AI 给出的只是需要验证的漏洞假设,不是天然成立的安全结论。任何一步推理出现错误,都可能导致最终结论不成立,仍需人工通过代码审查、动态调试和实际测试进行验证。
修复建议
- 立即升级:尽快升级到 PHP 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35 或更高版本。
- 无法升级时下线:如果暂时无法应用补丁,应考虑将网站下线,直到修复完成。
- 检查部署方式:Apache mod_php 和 PHP-FPM 环境均已验证存在攻击路径,不要依赖"业务代码没有漏洞"的假设。
- 关注运行时安全:即使应用层没有明显漏洞,运行时层面的内存安全问题同样可能导致服务器被入侵。
结论与判断
这次 PHP 暴雷事件最值得关注的不是漏洞本身有多严重——内存安全漏洞在 C/C++ 生态中并不罕见——而是它暴露了开源基础软件在 AI 时代面临的结构性挑战。
一方面,AI 正在显著降低漏洞挖掘的门槛,攻防双方都能受益,但短期来看攻击方更容易吃到红利,因为攻击者只需要找到一个突破口,而防御方需要持续保护大量系统。
另一方面,PHP 基金会的"结构性失败"也提醒我们:当安全报告数量因 AI 工具普及而激增时,维护资源不足的问题会被进一步放大。基金会今年 5 月成立生态系统安全团队、引入 AI 辅助漏洞检测,正是在应对这一趋势。
对于前端/全栈开发者来说,这次事件是一个明确的信号:PHP 作为底层运行时,其安全性会直接影响上层所有应用。在 Serverless 和边缘计算日益普及的今天,运行时安全不再是"运维的事",而是每个工程师都需要关注的工程问题。