PHP官方发布最新安全更新,修复了两个可导致未授权远程代码执行(RCE)的严重漏洞。涉及版本包括PHP 8.5.12、8.4.27、8.3.36和8.2.35。鉴于漏洞危害极大,官方强烈建议所有用户立即升级。

高危风险与受影响范围

此次漏洞影响所有处理Web请求的PHP环境,包括PHP-FPM、Apache(mod_php)、php-cgi、FrankenPHP和LiteSpeed。其中,mod_php模块风险最高,已有演示证明攻击者可在任何应用代码运行前,通过未授权请求触发攻击。

漏洞技术细节

  • CVE-2026-109618(内存溢出损坏):内存不足处理可能导致PHP在内部请求数据仅部分初始化时中断,后续清理操作可能将无效数据误判为有效数据,从而引发RCE。
  • CVE-2026-109619(陈旧全局状态):请求结束后,其内部状态可能在内存释放后残留。同一工作进程处理的后续请求若在重置前使用这些陈旧数据,将被攻击者利用。

紧急修复指南

  • 立即升级:请更新至PHP 8.5.12、8.4.27、8.3.36或8.2.35。Windows二进制文件及源代码已在官网提供。
  • LTS用户:Linux发行版和长期支持供应商已获补丁,请查询并更新软件包。
  • 旧版本用户:PHP 8.1及更早版本已停止官方维护。部分供应商提供回溯补丁,或建议升级至受支持版本。针对从源码构建或缺乏LTS支持的用户,PHP安全团队为7.4、8.0和8.1提供了最小化源码回溯补丁。
  • Remi仓库用户:rpms.remirepo.net今日不提供更新,建议切换至发行版自带包或从源码构建以立即应用补丁。

临时缓解措施

若无法立即更新,可采取以下措施降低风险,但无法确保绝对安全:

针对CVE-2026-109618的缓解

  • 设置memory_limit=-1,并通过FPM池或Apache配置中的php_admin_value强制生效,防止应用层覆盖。
  • 限制post_max_size:无上传需求设为8M,有上传需求设为32M,并确保upload_max_filesize小于前者。
  • 在Web服务器或代理层限制请求大小、字段数量及头部数量,涵盖无Content-Length的请求。
  • 使用容器或cgroup限制资源,避免使用RLIMIT_AS或RLIMIT_DATA,以防触发分配失败。

针对CVE-2026-109619的缓解

  • 设置session.upload_progress.enabled=0并重启工作进程,需在请求解析前生效(如php.ini),禁用ini_set()。
  • PHP 8.5用户可设置fatal_error_backtraces=0并重启进程,阻断致命错误回溯路径。
  • 移除请求初始化前发出诊断信息的无效或弃用设置,仅隐藏错误信息无效。
  • 修复可由攻击者触发的致命错误、执行超时及回调处理失败等问题。