一、问题
2026 年 10 月 21 日,PHP 官方正式发布紧急安全更新,修复两项严重安全漏洞:CVE-2026-109618 和 CVE-2026-109619。
两项漏洞的 CVSS v4.0 评分均为 9.2 分(严重),攻击者可能在未经身份验证的情况下,利用漏洞实现远程代码执行(RCE)。
CVE-2026-109618:内存耗尽处理异常导致远程代码执行,PHP 在处理内存耗尽(OOM)异常时,可能导致部分内部请求数据未正确初始化,并在后续清理过程中被错误使用,进而产生远程代码执行风险。
合理限制 POST 请求大小:可根据实际业务情况,在 php.ini 中调整 post_max_size,不需要大文件上传的业务,可参考:post_max_size = 8M;需要文件上传的业务,可参考:post_max_size = 32M。
同时确保 upload_max_filesize 小于 post_max_size,并根据业务需求调整具体数值。如果网站存在大文件上传、数据导入等功能,请谨慎修改,避免影响正常业务。保存后重启对应 PHP 服务,使配置生效。
PHP 官方还提出,可通过设置以下参数,降低攻击者利用 PHP 内存限制触发相关漏洞的风险:memory_limit = -1;该配置会取消 PHP 自身的内存限制,不建议普通用户在缺少资源隔离的情况下直接使用。 在 Linux 环境下,仅建议具备相关运维经验的用户,在配置容器或 cgroup 内存限制、确保不会影响整机稳定性的前提下评估使用。
如采用此措施,应确保应用、目录或 FPM 池配置没有重新设置有限的 memory_limit。底层内存分配失败仍可能触发漏洞;不要使用 RLIMIT_AS 或 RLIMIT_DATA 替代容器或 cgroup 限制,以免引发相关内存分配失败。
此外,PHP 官方还建议在 Web 服务器或代理层限制请求体大小、请求参数数量及复杂度等,进一步降低攻击风险。相关限制也应覆盖没有有效 Content-Length 的请求。
CVE-2026-109619:全局状态残留导致远程代码执行,PHP 在处理请求时,部分内部状态可能在关联内存释放后继续保留。当同一工作进程处理后续请求时,可能错误使用这些失效数据,从而引发远程代码执行风险。
关闭 PHP Session 上传进度跟踪功能:session.upload_progress.enabled = 0。如果使用 PHP 8.5,还可增加:fatal_error_backtraces = 0;上述配置是 PHP 官方针对 CVE-2026-109619 已确认攻击路径提供的缓解措施,但不能完全排除其他利用方式。
二、修复方案
升级 PHP 版本
PHP8.2:升级至 8.2.35 或更高版本
PHP8.3:升级至 8.3.36 或更高版本
PHP8.4:升级至 8.4.27 或更高版本
PHP8.5:升级至 8.5.12 或更高版本
PHP 8.1 及更早版本:已停止支持,请升级至受支持的最新版本