EN
L5 · 屎无前例PHP · RCE · 提前泄露php2shell

PHP2Shell:补丁和漏洞利用一起冲出来了

PHP2Shell:PHP 核心两个高危 RCE 在补丁发布前一天泄露,5.4 以来几乎所有 PHP 版本都中招

CVE-2026-109618 和 CVE-2026-109619(CVSS 均为 9.2)能在 PHP 本身里实现远程代码执行。概念验证视频在发版前一晚泄露,补丁和漏洞利用几乎同时到来。

披露时间
2026年10月21日
更新于 2026年10月22日
严重程度
CVSS 9.2 × 2
本页收录 2 个 CVE
波及范围
PHP-FPM、mod_php、php-cgi、FrankenPHP、LiteSpeed:5.4 以来几乎所有 PHP
php
在野利用
已发现
AWS 报告广泛在野利用,并在 MadPot 中追溯发现 10月17日的利用尝试

一句话说清楚

让 PHP 恰好在最要命的时刻耗尽内存,或者去戳一个还留着上一个请求已释放状态的 worker(已确认的入口是 session.upload_progress),PHP 接下来执行的就是你塞进去的字节。

发生了什么

两个漏洞都出在 PHP 自己的引擎里,不是哪个框架或插件的问题。5.4 以来几乎每个 PHP 版本都至少受其中一个影响。Apache mod_php 风险最高,但 PHP-FPM、php-cgi、FrankenPHP 和 LiteSpeed 也都在影响范围内。

原定的披露日期是 10月22日。10月20日晚上,报告团队之一 Calif 意外公开了一段概念验证视频,PHP 随即在 10月21日 14:00 UTC 提前发版。于是这一回,防守方和攻击方难得站在了同一条起跑线上。

早期报道: Patchstack 的合作方和 watchTowr 在几小时内就看到了真实的攻击尝试,Cloudflare 也看到了早期尝试。Sophos 没有收到利用报告,截至本文撰写时也没人确认过成功入侵。我们按最坏的可信情况定级:PoC 已公开 + 默认配置即受影响 + 基本覆盖整个 Web = L5。

常见误解

关掉 session.upload_progress 不等于修复。它只切断了通往 CVE-2026-109619 的已确认路径。内存耗尽那个漏洞 CVE-2026-109618 根本不需要它。

10月22日更新: AWS 现已报告广泛在野利用,并在 MadPot 中追溯发现了 10月17日、公开披露前的利用尝试。此前“有争议”的状态已被这份一手报告取代。AWS 没有确认早期尝试能在真实系统上成功。排查至少应回溯至 10月17日;L5 评级不变。

马桶里有什么

CVE-2026-109618CVSS 9.2

内存耗尽时请求只初始化了一半

如果 PHP 在不该的时候耗尽内存,可能会在内部请求数据只初始化了一部分时就中途退出。这条路径不依赖 session.upload_progress。

说人话: 马桶只拧了一半螺丝就装好了,还是有人坐了上去。

CVE-2026-109619CVSS 9.2

释放后仍被使用的过期请求状态

请求所属的全局状态在内存释放后依然残留,同一个 worker 上的后续请求会继续使用它。已确认的触发方式是 session.upload_progress。

说人话: 你明明冲掉了,它却从下一个隔间冒了出来,还接管了你的服务器。

你踩到了吗?

在每台机器上运行 php -v,然后输入版本号,或者点一个最接近的。

修复版本(2026年10月21日)
分支安全版本状态
PHP 8.58.5.12支持中,已修复
PHP 8.48.4.27支持中,已修复
PHP 8.38.3.36仅安全修复,已修复
PHP 8.28.2.35仅安全修复,已修复。2026年12月31日停止维护
PHP 8.1 及更早版本none已停止维护。7.4–8.1 只能靠发行版 / LTS 厂商或源码移植补丁

今晚补不了?先把洞堵上

php.ini
; PHP2Shell 临时加固(只防一部分!)
; 只能挡住已确认的 CVE-2026-109619 session 路径
session.upload_progress.enabled = Off

改完重载 PHP-FPM / Apache。php.net 说得很清楚,升级才是唯一的完整修复:这一招对 CVE-2026-109618 毫无作用。在代理层限制请求体大小也能提高攻击门槛。

案发时间线

  1. 2026年10月17日

    AWS 在 MadPot 中追溯发现最早的利用尝试

    AWS 于 10月21日报告;这些尝试是否能在真实系统上成功仍不清楚。

  2. 2026年10月20日

    细节从厕所里溜了出来

    Hacker News 上有帖子说漏洞定于 10月22日披露。UTC 时间 20:00 左右,Calif 误将概念验证视频公开。PHP 当天发布了提前通知。

  3. 10月21日 03:02 UTC

    Cloudflare 默认开启 WAF 规则

  4. 10月21日 07:34 UTC

    Patchstack 的托管合作方报告利用事件

    它在 13:57 UTC 更新的遥测数据显示只有探测,没有入侵的确凿证据。

  5. 10月21日 14:00 UTC

    PHP 发布 8.5.12、8.4.27、8.3.36 和 8.2.35

    Linux 发行版和 LTS 厂商提前拿到了补丁。

  6. 10月21日 14:19 UTC

    watchTowr 观察到活跃的利用尝试

    watchTowr 也复现了 CVE-2026-109618。Sophos 表示尚未收到在野利用的报告。

  7. 2026年10月21日

    AWS 报告补丁发布后的广泛利用

    多个攻击者针对 MadPot 发起利用,其中包括补丁公开前的尝试。

各方说法

我们列出每条说法和它的出处,并标出一手来源(厂商、研究人员、软件仓库)。各方说法不一致时,按最坏的可信情况定级。

  • php.net news一手来源10月20日发布提前通知,10月21日发版。升级是唯一的完整修复
  • Patchstack一手来源标题说攻击正在进行;后续遥测只显示探测,没有确认的入侵
  • Sophos一手来源PoC 已公开;未收到在野利用报告;PoC 的说法未经核实
  • The Hacker News致谢 Wiz Research、Calif 和 OpenAI Codex Security;Gemini 团队协助了修复
  • Huntress“php2shell”这个名字是它起的;漏洞在发版前就泄露了
  • JFrog Security Research两个 CVE 的技术深度分析
  • OpenAI php2shell-checker通过 URL 响应头或本地 php -v 检查版本;修复版本与 php.net 一致,识别不了发行版移植的补丁
  • AWS Security Blog一手来源MadPot 记录了 10月17日的利用尝试;发布后出现广泛利用;早期尝试能否在真实系统上成功仍不清楚