2026年10月21日,PHP 披露了两个可能导致未经身份验证的远程代码执行的严重漏洞。同日,该项目为 8.5、8.4、8.3 和 8.2 分支发布了修复,并建议用户立即升级。处理 Web 请求的安装可能受到影响,包括 PHP-FPM、Apache mod_php、php-cgi、FrankenPHP 和 LiteSpeed,PHP 表示。

修复版本为 PHP 8.5.12、8.4.27、8.3.36 和 8.2.35。这些版本修复了 CVE-2026-109618(与内存不足时的状态损坏有关),以及 CVE-2026-109619(某个请求的状态可能留存在工作进程中,并在处理下一个请求时被使用)。低于上述版本的版本均受影响;对于 PHP 8.1 及更早分支,该项目已不再自行发布更新,因此管理员应确认发行版供应商或长期支持服务商是否提供了修复。
Web 请求生命周期中的两个错误
对于 CVE-2026-109618,请求处理可能因内存不足而中断,此时内部数据尚未完成初始化。PHP 在结束处理时,随后可能访问不正确的状态。开发人员在安全公告中列出了多种情形,包括 multipart 请求以及内存限制耗尽。对于 Apache mod_php,已确认问题可能在应用代码启动前出现;PHP 还指出,此配置下的风险更高。
CVE-2026-109619 影响工作进程在请求之间保存的状态。如果某项操作在数据清理前出错,前一个请求的内存会被释放,但指向该内存的引用仍然存在。下一个被分配到同一进程的请求,可能在常规初始化之前访问过期状态。在项目安全公告中,PHP 描述了通过早期诊断操作和文件上传进度处理触发问题的已确认路径;具体路径是否适用,取决于配置、应用和所用扩展。
这两个漏洞的 CVSS 4.0 评分均为 9.2。据 PHP 称,已确认的影响包括以 Web 工作进程权限执行代码。对于内存不足漏洞,安全公告确认了针对 mod_php 的完整 HTTP 攻击场景;对于 PHP-FPM,公告描述的是代码分析和易受影响的条件。在评估具体部署时,必须区分这两类信息。
管理员应检查什么
首先,确认实际处理 Web 流量的 PHP 版本:一台服务器上可能分别运行 CLI、FPM 和 Apache 构建版本,而容器及集群节点也可能需要单独更新。对于每个受支持分支,安装对应的修复版本,或安装供应商已确认包含补丁的软件包。随后重启所有 PHP 工作进程,并在重启后核实其版本——仅替换文件而不重启,会导致旧进程继续运行。
对于 PHP 8.1 及更早版本,请确认支持状态,并检查发行版或长期支持服务商是否提供了回移的修复。如果没有此类软件包,应规划迁移到受支持的分支。PHP 表示,Linux 发行版供应商已提前获得补丁;其软件包版本号可能与 PHP 官方发行版不同,因此应核对修复是否已纳入软件包。
临时配置和请求过滤可以减少部分攻击路径,但该项目称,升级是彻底消除这两个问题的唯一方法。团队应优先盘点所有 Web 工作进程、安装修复软件包、重启进程,并逐一检查每个节点是否更新成功。这样才能修复已确认的漏洞,而不是仅依赖 Web 服务器配置。