跨请求的残留状态
CVE-2026-109619 中,持久工作进程在请求内存释放后仍保留引用。下一个到达同一进程的请求可在正常初始化前使用残留值。确认路径包括 PHP 8.5 的致命错误回溯、会话上传进度生命周期。mod_php 和具备合适应用路径的 PHP-FPM 均验证了 RCE。
PHP-FPM 可以豁免吗?
不可以。两个漏洞在不同 SAPI 中的利用条件不同。FPM 在请求启动失败时终止子进程,可阻止部分启动阶段的序列,但不消除应用执行阶段及跨请求路径。既不要认为所有架构都与 mod_php 演示完全一致,也不能据此省略 FPM 补丁。
上传进度与错误回溯
在解析请求前设置 session.upload_progress.enabled=0 并重启全部进程,可阻止已确认的会话路径。PHP 8.5 的 fatal_error_backtraces=0 仅移除已确认的回溯产生路径。移除会触发早期诊断的无效或弃用逐请求配置。display_errors、error_reporting 或 @ 隐藏输出无法阻止残留状态漏洞,也无法覆盖所有变体。
2. 安装含补丁的构建
首个修复版本为 PHP 8.2.35、8.3.36、8.4.27 和 8.5.12。选择当前受支持分支或兼容的新分支,同步升级扩展,并测试应用兼容性与健康检查。从 PHP 或对应厂商渠道获取构建;CMS 更新和 WAF 规则均不能代替解释器补丁。
| PHP 分支 | 低于此版本的上游发行版 | 首个修复版本 | 安全支持结束 |
|---|---|---|---|
| PHP 8.5 | < 8.5.12 | ✓ 8.5.12 | 2029年12月31日 |
| PHP 8.4 | < 8.4.27 | ✓ 8.4.27 | 2028年12月31日 |
| PHP 8.3 | < 8.3.36 | ✓ 8.3.36 | 2027年12月31日 |
| PHP 8.2 | < 8.2.35 | ✓ 8.2.35 | 2026年12月31日 |
仍在使用 PHP 8.1 或更早版本?
这些分支不会获得 PHP 项目常规版本更新。7.4、8.0、8.1 有最小源码回移植;厂商补丁状态需单独核实。 阅读指南 ↗
一手来源与延伸阅读
PHP security teamSecurity advisory · 21 Oct 2026
CVE-2026-109618GHSA-w8hw-w9fx-j79w · OOM corruption
CVE-2026-109619GHSA-6wmf-4rv5-p3rp · Stale global state