紧急安全警报:PHP 官方发布 2026 关键更新:修复两个高危远程代码执行(RCE)漏洞,建议立即升级
一、 背景概述
PHP 官方团队在最新的安全公告中公布了两个严重级别极高的远程代码执行漏洞(Remote Code Execution, RCE),官方 CVE 编号为 CVE-2026-109618 与 CVE-2026-109619。
这两个漏洞在 CVSS v4.0 评分中均达到了 9.2(Critical,极危)。更为严重的是,攻击者无需经过身份验证,仅需向目标服务器发送精心构造的网络请求,即可在应用代码运行前触发漏洞并获取服务器控制权限。
官方目前已在 PHP 8.5.12、8.4.27、8.3.36 以及 8.2.35 等安全版本中对该问题进行了修复。
二、 漏洞技术细节分析
1. CVE-2026-109618:内存超限(OOM)处理中的内存损坏
-
原理:当应用在处理特定请求(例如大文件上传)时超过了
memory_limit限制,PHP 会使用longjmp()强制中断请求并抛出 OOM 错误。 -
风险:这种中断可能导致内部数据仅完成部分初始化。在后续清理内存时,PHP 会误将未初始化的垃圾数据当成有效内存进行释放,进而引发堆内存损坏(Heap Memory Corruption),攻击者可借此执行任意代码。
2. CVE-2026-109619:全局状态残留引发的野指针/陈旧状态读取
-
原理:在致命错误发生后,PHP 请求拥有的部分全局状态未被彻底清理,残留的指针依然指向已释放的内存区域。
-
风险:在多请求复用 Worker 进程(如 PHP-FPM, Apache mod_php, LiteSpeed 等)的环境下,下一个请求可能重用这些脏指针,导致野指针解引用,最终实现代码执行。
三、 受影响的版本与部署环境
受影响的 PHP 版本:
-
PHP 8.5 分支:< 8.5.12
-
PHP 8.4 分支:< 8.4.27
-
PHP 8.3 分支:< 8.3.36
-
PHP 8.2 分支:< 8.2.35
-
所有已停产(EOL)的版本(如 PHP 8.1、8.0、7.4 及更早版本均不受官方维护修复)
受影响运行模式:
包括 PHP-FPM、Apache mod_php、php-cgi、FrankenPHP 和 LiteSpeed。其中 mod_php 被评估为最高风险配置。
四、 修复方案与安全建议
1. 立即更新至安全版本(首选)
请运维团队立即将服务器的 PHP 环境升级至最新补丁版本:
-
PHP 8.5 $\rightarrow$ 升级至 8.5.12
-
PHP 8.4 $\rightarrow$ 升级至 8.4.27
-
PHP 8.3 $\rightarrow$ 升级至 8.3.36
-
PHP 8.2 $\rightarrow$ 升级至 8.2.35
2. 临时缓解措施(无法立即升级时)
若因业务原因暂无法完成补丁部署,建议采取以下临时保护手段:
-
隔离外网访问:在边界防火墙或 WAF 规则中加大对异常文件上传与大 Payload 请求的阻断力度。
-
限制内存分配:适当调大
memory_limit减少正常业务触发 OOM 机制的概率(仅为临时减缓,无法根本防御)。 -
重启 Worker 进程:降低 PHP-FPM / Web Server Worker 进程的最大请求处理数(如
pm.max_requests),缩短脏内存残留的周期。
(注:WAF 等防护手段仅能作为临时过渡,更新至官方安全版本是消除该漏洞风险的唯一彻底方案。请广大站长及运维人员尽快落实升级程序。)