PHP2Shell:PHP 严重 RCE 漏洞在补丁发布前已被利用,亚马逊确认
CVE-2026-109618 与 CVE-2026-109619 可在所有 PHP 网页服务器模式下未授权接管服务器

在 PHP 开发团队于 2026 年 10 月 21 日公开披露两个严重的远程代码执行漏洞之前四天,攻击者就已经在探测 PHP 服务器。亚马逊威胁情报用其 MadPot 蜜罐网络确认了补丁前的利用,该网络记录到的首次尝试发生在 10 月 17 日。这两个漏洞 —— CVE-2026-109618 和 CVE-2026-109619,在 CVSS 严重性量表上各评 9.2 分(满分 10),合称 PHP2Shell —— 影响每一种主要的 PHP 网页服务器部署模式。美国网络安全和基础设施安全局、FBI 网络部门和英国国家网络安全中心同时发布了公告,敦促立即打补丁。随着概念验证利用在补丁发布后数小时内流传、亚马逊确认「PHP2Shell 现已在野被广泛利用」,各组织面临一个极其狭窄的修复窗口。
两条通往未授权远程代码执行的内存损坏路径
两个 CVE 都利用 PHP 的 C 运行时中的底层内存管理行为,但代表不同的失败模式。
CVE-2026-109618 利用的是 PHP 处理超出配置的 memory_limit 的请求的方式。当 PHP 耗尽允许的内存时,它会调用 longjmp()——一个 C 标准库函数,它在不展开调用栈的情况下退出当前执行上下文。析构函数不会运行;部分初始化的数据结构以不一致的状态留在内存中。PHP 的请求关闭序列随后把那个损坏的状态当作有效的,为释放后使用或访问未初始化内存创造了条件。一个在精确执行点刻意触发内存耗尽状态的攻击者,可以操纵由此产生的内存布局,以网页服务器工作进程账户的身份实现未授权的远程代码执行。研究者把这归为 CWE-416(释放后使用)、CWE-755(异常状况处理不当)和 CWE-824(访问未初始化指针)。Wiz Research 提供了两个 CVE 的完整技术剖析,包括针对 WordPress、Drupal 和 Joomla 已演示的预认证 RCE。
CVE-2026-109619 针对一个不同的弱点:PHP 在长时间运行的工作进程之间保留请求特定的全局变量。PHP-FPM、mod_php、FrankenPHP 和 LiteSpeed 为性能效率维护工作进程池,跨数千个连续请求复用单个进程。存在一个时间窗口,一个新请求在前一个请求的后备内存被完全释放和重新初始化之前就开始执行。落在这个窗口里的请求会解引用过期指针,导致堆释放后使用、内存泄露和未授权 RCE。这种设计性状况 —— 工作进程复用而请求之间没有严格的内存隔离 —— 可追溯到 PHP 作为单请求 CGI 解释器的起源,并经历了二十多年的架构变化而留存至今。
AI 安全工具发现了人工审计者 14 年未发现的东西
PHP 基金会称,利用场景早在 2024 年就被理论化,但没有识别出具体的攻击向量,而修复工作因关键专家「被许多职责占据」而反复停滞。
具体的利用路径最终是通过 AI 辅助的代码分析识别出来的。据 PHP 基金会称,安全公司 Calif 在 OpenAI 的 Patch the Planet 倡议——一个连接安全研究者、维护者和事件响应者、以应对关键开源漏洞的协调项目——下,使用 GPT-5.6 Sol 识别出了 CVE-2026-109618。独立地,Wiz Research结合 Gemini 4 Argon 和 GPT-5.6 Sol 使用其 Wiz Atlas 安全 AI 智能体发现了两个 CVE。Wiz 报告这一发现 —— 从首次发现到针对生产 CMS 平台确认 RCE —— 一名研究者用了约一周,而团队称这项工作此前本需要一支世界级团队和数月的努力。两项独立发现都在 2026 年 8 月底前送达了 PHP 基金会,PHP 于 9 月正式确认报告并开始协调修复。
OpenAI 把这一结果框定为一道能力门槛:「它也标志着一个新阶段,AI 能找到具有互联网规模影响的安全漏洞。」两支使用不同 AI 工具栈的团队同时独立发现,支持了这一框定 —— 结果看起来是可复现的,而非巧合。
利用在公告之前就已开始 —— 并迫使公告提前
亚马逊 10 月 17 日的检测是运营上最重要的发现:一个未知威胁行为者在计划披露前四天瞄准了一个 MadPot 诱饵系统,使用的似乎是这些漏洞被公开描述之前就掌握的 PHP2Shell 知识。
当漏洞开始在网络论坛和社交媒体上流传时,PHP 团队加快了发布。网络安全公司 watchTowr 在 10 月 20 日 —— 官方补丁发布前一天 —— 表示这些漏洞「可能让攻击者在受影响的服务器上运行自己的代码」,表明禁发协议已经破裂。
在 10 月 21 日补丁发布后数小时内,概念验证利用出现,亚马逊的传感器几乎立刻记录到它们被用于攻击蜜罐。各次攻击尝试中利用技术的差异让亚马逊得出结论:多个独立威胁行为者已获得这些漏洞的知识。亚马逊指出,它无法判断任何尝试是否会对加固过的生产基础设施成功 —— 在没有确认的真实世界入侵的情况下,这是一个重要的告诫。
每一种 PHP 部署模式都有风险 —— 补丁已可用
PHP-FPM、Apache mod_php、php-cgi、FrankenPHP 和 LiteSpeed LSAPI 都受影响。该漏洞类别不限于单一执行模型;任何涉及工作进程复用或请求边界内存管理的 PHP 服务器模式都在范围内。
四个受维护的发行系列已有补丁:PHP 8.5.12、8.4.27、8.3.36 和 8.2.35,均于 2026 年 10 月 21 日发布。PHP 8.1 及更早版本已到生命周期终点,不会收到补丁;必须升级到受支持的系列。
PHP 团队把打补丁描述为唯一完整的修复。临时措施 —— 调低 memory_limit、限制 upload_max_filesize 和 post_max_size —— 为 CVE-2026-109618 收窄了攻击面,但不能处理 CVE-2026-109619,并让面向互联网的服务器仍处于风险中。FBI 的公告很明确:如果无法立即打补丁,就把系统下线。
一个 14 年的漏洞和一次破裂的协调披露
PHP 基金会的事件后声明异乎寻常地坦率。在多年停滞的修复工作之后,AI 辅助的漏洞研究在 2026 年 8 月底前产出了具体的利用路径 —— 但随后的披露时间线在信息泄露之前没有足够的缓冲。基金会承认:「我们不会假装不是这样:这一延迟是一次结构性失败。」
这一承认描述的问题比单个漏洞更广。一个在 2024 年被理论化、到 2026 年 8 月被具体向量化、而到 10 月 17 日已被主动利用的漏洞,代表着在利用变得可行与防御者拥有可行动补丁之间至少数周的窗口。各组织应把 10 月 17 日视为潜在入侵窗口的起点,并回溯审查到该日期为止的服务器日志、进程执行记录和网页应用防火墙事件。
AI 加速的发现正在跑赢防御者生态
PHP2Shell 的次要意义在于它所揭示的 AI 安全研究的当前状态。几十年来,广泛部署的基于 C 的运行时中的关键内存安全漏洞,都是通过人工审查、模糊测试或后利用发现的。PHP2Shell 是在主动攻击者独立向量化这条路径之前,由 AI 辅助审计发现的 —— 但只领先很小的一段,而协调披露的基础设施没能守住防线。
两个独立的 AI 平台在同一个此前未被向量化的漏洞类别上收敛,表明 AI 代码分析在 C 运行时内存安全漏洞上已跨过一道实用门槛。如今更紧迫的结构性问题是,负责任的披露流程能否吸收 AI 加速的发现速率。当 AI 工具比传统审计快数月识别出漏洞时,发现与防御者就绪之间的窗口被危险地压缩。PHP 基金会即将发布的事后复盘及其产生的任何流程改变,将是衡量安全界是否有可信答案的早期证据。