先说结论:补丁已经发布了,就在今晚 22:00(北京时间)。PHP 核心爆出两个 CVSS 9.2 分的远程代码执行漏洞,不用登录就能打,应用代码还没开始跑就已经中招。修复版本是 PHP 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35,现在就能升。PHP 8.1 及更旧的版本没有官方修复——官方原话:没有任何完整的临时缓解办法,升级是唯一安全的选择。还没升的,先拉到第四节看临时缓解清单。

一、事情是怎么闹大的
正常的漏洞披露流程是补丁和公告同一天出,这次全乱套了:
- 10 月 20 日晚,有人在 Hacker News 发帖,称两个 PHP RCE 漏洞将在 10 月 22 日披露,还流出一张名为 "PHP2Shell" 的攻击工具截图,横幅宣称支持 PHP 5.4.0 以后的所有版本。帖子很快被删,但截图已经传遍 X 和 Mastodon;
- 安全公司 watchTowr 随后证实外泄属实,并表示已成功复现其中一个漏洞,但在补丁发布前不公开细节;
- PHP 官方当晚(20 日 19:33 UTC)紧急发预告:把原定 22 日的发布提前一整天,并明说如果细节进一步外泄或出现真实攻击,还会再提前;
- 10 月 21 日早上,Cloudflare 报告已观测到针对 PHP 站点的早期攻击,并给所有套餐(包括免费版)上线了临时 WAF 规则,但其 CTO 强调这只是权宜之计;荷兰 DigiD、议会网站等多家政府服务干脆预防性下线;
- 今晚 22:00,补丁和完整技术细节准时发布,安全公司 Sansec 此前预判:补丁一出,15 分钟内就会出现大规模扫描。
二、两个漏洞到底是什么
漏洞在 PHP 解释器本身,不在 WordPress 或任何某个应用里,所以只要服务器对外跑 PHP 就在射程内——PHP-FPM、Apache mod_php、php-cgi、FrankenPHP、LiteSpeed 官方点名全中,其中 mod_php 风险最高,已有演示利用:一个未登录的请求,在你的应用代码运行之前就能触发。
CVE-2026-109618(内存溢出型):请求处理到一半内存不够(OOM)会打断 PHP,此时内部请求数据只初始化了一半,后续清理流程却把这堆"半成品"当有效数据用,攻击者可以借此劫持执行流程。
CVE-2026-109619(残留状态型):某个请求用过的内部状态,在内存已经释放后还残留着;同一个工作进程处理下一个请求时,可能在正常初始化重置它之前先踩到这块过期状态。官方确认的触发路径包括 session 的上传进度功能(session.upload_progress),PHP 8.5 上还涉及错误回溯(fatal_error_backtraces)。
说人话:这两个洞都不需要账号、不需要你网站上有上传功能配合,属于"请求发过去,服务器就可能执行对方的代码"这一档。
三、影响范围:谁有补丁,谁没有
- 有官方修复:PHP 8.5.12、8.4.27、8.3.36、8.2.35(今晚已发布,Linux 发行版和 LTS 厂商已提前拿到补丁,先查发行版的包);
- 没有官方修复:PHP 8.1 及更旧版本——官方已停止维护,不会出更新版;
- 一个破例:官方这次额外提供了 PHP 7.4、8.0、8.1 的最小源码移植补丁,给自己编译 PHP、或没有 LTS 厂商可依靠的人打,但不会有现成安装包;
- 一个大坑:常用的第三方源 Remi(rpms.remirepo.net)今晚不会发布更新,官方点名建议改用发行版官方包或源码编译,别傻等 Remi;
- 曝露面:安全机构 Mallory 估算全球约 130 万台对外主机在跑 PHP,其中约 88.4 万台跑的是已停止支持的版本——这批机器没有现成补丁可打;
- 顺带一提,PHP 8.2 也将在 2026 年 12 月 31 日停止维护,升版本尽量一步到 8.3 以上。
四、站长现在就该做的事
1. 先查版本。服务器上执行 php -v,或看面板里的 PHP 版本。低于 8.2.35 / 8.3.36 / 8.4.27 / 8.5.12 的,全在未修复范围内。
2. 能升立刻升。升级到上面对应的修复版本;用发行版包管理的先更新系统包,用 Remi 源的按第三节说的换路径,不要等。
3. 用虚拟主机或托管面板的,去催服务商。这不是网站代码层能修的,必须在服务器层面更新 PHP。你催得越早,排队越靠前。
4. 暂时升不了的,把官方临时缓解做上(只能减少曝露,不能替代升级):
- 用 php_admin_value 把
memory_limit=-1锁死在 FPM 池或 Apache 配置里,并检查没有别的地方把它改回有限值——这是针对 109618 的主要缓解; - 调低
post_max_size:不需要上传的站设 8M,需要上传的设 32M,且upload_max_filesize小于它;有条件的话在 Web 服务器层再限制请求体大小、表单字段数等; - 关掉
session.upload_progress.enabled=0(写在 php.ini 或 FPM 池配置里,别指望 ini_set),然后重启所有 PHP 工作进程——这是针对 109619 的主要缓解; - PHP 8.5 额外关掉
fatal_error_backtraces=0并重启进程。
5. 套了 Cloudflare 的别高枕无忧。WAF 规则只在流量全走 Cloudflare 时有效,攻击者知道你源站真实 IP 就能绕过去;官方和 Cloudflare 自己都说这只是止血。
五、网传说法核对
- "CVSS 10.0 满分"——外泄帖的说法,官方评分是 9.2(CVSS v4.0),已经够高了,不用再加码;
- "PHP 5.4 起全部中招"——出自外泄工具的横幅,官方未确认完整受影响版本清单;官方口径是所有对外提供 Web 服务的 PHP 安装都有风险,修复覆盖 8.2 起、移植补丁给到 7.4 起,更老的版本连移植都没有;
- "59% 主机还在跑旧版"——和 Mallory"约 88.4 万 / 130 万台"的估算口径接近,量级可信;
- "15 分钟内全网开扫"——这是 Sansec 的预判不是已发生的事实;但 2024 年 PHP 的 CVE-2024-4577 漏洞在披露后极短时间内就出现大规模利用,前车之鉴摆在那,没人敢赌这次会慢。
最后提醒一句:WordPress、WooCommerce、Discuz、各类自建站和内部系统全是 PHP 的地盘,跟版本新旧无关、跟你装没装安全插件也无关。今晚升不了版本的,至少先把第四节的缓解做上,明早第一件事继续推升级——补丁已经在桌上了,剩下的就是比谁手快。
信息来源:PHP 官方安全公告(php.net,含 GHSA-w8hw-w9fx-j79w、GHSA-6wmf-4rv5-p3rp)、Sansec、Patchstack、The Hacker News 事件报道。
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:https://baiyakai.com/695.html
共有 0 条评论