上周提过 PHP2Shell——PHP 引擎自己出的两个 RCE,CVE-2026-109618 和 CVE-2026-109619,没打补丁的看一眼版本号就能对上(那条补丁怎么打,在这里)。当时说它是"发布后十几分钟就会有大规模扫描"那种,一周过去,这话应验得比预期还快。

三天的账,捋一遍:

  • 10/21,PHP 官方发安全版本(8.2.35 / 8.3.36 / 8.4.27 / 8.5.12)。
  • 10/24,有研究员在蜜罐上拿到了可用的 RCE——两个攻击 IP,一共打出 35 个 shell,走的是四段式 HTTP 请求链,跟公开的 PoC 高度吻合。
  • 10/26,CISA 把它拉进 KEV(已知在被利用)名单,联邦机构限期 10/29。

CISA KEV 官方目录原样:CVE-2026-109618 / 109619 两行(同 10/26 收录、限期 10/29)

从披露到有人拿着真 shell 出来,三天不到。亚马逊那边说,其实 10/17——正式披露之前——就已经观测到利用尝试;Cloudflare 的统计是数百万次尝试;Cortex Xpanse 估的暴露面是 2260 万个实例。这些数字各家的口径未必一致,但方向没跑偏。

这条还有个额外背景值得单说:据 Wiz、OpenAI 和 Calif 那边的口径,这个洞是AI 辅助挖出来的。前阵子安全圈还在吵"AI 到底能不能挖洞",这次的答案是一句很具体的话——能,而且挖出来的是引擎级、影响面以千万计的那种。这不是要夸 AI,而是提醒一件事:挖洞的门槛在降低,从披露到有人在野利用之间的那扇窗口,只会越来越短。

然后是那句最不中听、但最实在的:这些洞里,没有一个是需要你先写错业务代码才中招的。 不用应用层漏洞,PHP 自己就能被打。Apache 的 mod_php 风险最高,PHP-FPM、php-cgi、FrankenPHP、LiteSpeed 也都在范围内——所以别因为自己跑的是 FPM 就放心。

影响版本:PHP 8.2.x < 8.2.35、8.3.x < 8.3.36、8.4.x < 8.4.27、8.5.x < 8.5.12。8.1 及更早已经 EOL,官方只给了 7.4 / 8.0 / 8.1 的源码 backport,没有现成二进制包。

修复版本:8.2.35 / 8.3.36 / 8.4.27 / 8.5.12。

一条自查(关键是别只看 CLI 那个版本):

# 真正在跑的 runtime,未必等于 php -v 看到的那个
ps -eo pid,args | grep -E 'php-fpm|php-cgi|apache2|httpd' | grep -v grep
docker ps --format '{{.Names}}\t{{.Image}}' | grep -i php

容器的老规矩:光重启没用,得重建镜像。多版本共存的机器(宝塔、cPanel 那种),php -v 和站点实际挂的那个 php-fpm,经常不是一个。

已经按上周那篇打过补丁的,这次可以松一点;但顺手把容器镜像、以及 php -v 之外的那几个 runtime 再核一遍,不吃亏。还没动的,这条现在的优先级不一样了——它不再是一个"待处理项",是"已经在被利用"。

参考:https://thehackernews.com/2026/10/cisa-confirms-active-exploitation-of.html
20261103-215011.png