概述
2026 年 10 月 21 日,PHP 官方发布紧急安全更新,修复 PHP 解释器核心中的两个严重漏洞 CVE-2026-109618 与 CVE-2026-109619,CVSS v4.0 评分均为 9.2。两个漏洞均可导致未授权的远程代码执行(RCE):攻击者无需登录,也无需站点暴露特定业务接口,通过发送特制 HTTP 请求,即可在 PHP 进程权限下执行任意命令。
PHP 官方说明,所有处理 Web 请求的 PHP 部署形态均受影响,包括 PHP-FPM、Apache mod_php、php-cgi、FrankenPHP 和 LiteSpeed,其中 Apache mod_php 风险最高;本次漏洞没有完整的缓解方案,升级到修复版本是唯一安全的选择。
漏洞影响范围
PHP 分支 | 受影响版本 | 修复版本 |
8.5.x | 低于 8.5.12 | 8.5.12 |
8.4.x | 低于 8.4.27 | 8.4.27 |
8.3.x | 低于 8.3.36 | 8.3.36 |
8.2.x | 低于 8.2.35 | 8.2.35 |
PHP 8.1 及更早版本:官方不再提供更新,仅额外提供 PHP 7.4、PHP 8.0、PHP 8.1 的最小源码补丁(source backport)。使用发行版安装包请联系发行版供应商,或升级到受支持的 PHP 8 分支。
PHP 8.2:将于 2026 年 12 月 31 日结束生命周期,此后不再获得安全修复。
EdgeOne 防护方案
漏洞编号 | EdgeOne 覆盖方式 | 处理方式 |
CVE-2026-109619 | 托管规则已覆盖 | 启用托管规则,规则 ID 为 4494969309 |
CVE-2026-109618 | 托管规则已覆盖 | 启用托管规则,规则 ID 为 4401216559 同时建议通过自定义规则拦截不必要的 multipart 请求与超大正文请求 |
启用托管规则拦截 CVE-2026-109618 和 CVE-2026-109619
利用该漏洞的请求必须携带 session 上传进度字段(默认字段名 PHP_SESSION_UPLOAD_PROGRESS)。该字段在正常业务流量中不出现,攻击者也无法在不破坏利用链的前提下改写,属于高区分度特征。EdgeOne 已基于该特征发布 2 条规则,规则 ID 为 4401216559 和 4494969309,归属"开源组件漏洞"类别,可检测并拦截利用 CVE-2026-109618 和 CVE-2026-109619 的请求,防止攻击流量到达源站。
配置方式:
关闭托管规则的"评估模式"。
确保"开源组件漏洞"规则组已开启自动防护(标准版和企业版支持此功能)。
未启用自动更新时,开启手动防护并将规则 4401216559 和 4494969309 设置为"拦截"。
注意:
开启了"评估模式"或将"开源组件漏洞"配置为"手动防护"的站点,上述规则为"观察"模式,仅记录日志,不会拦截攻击请求。
配置自定义规则进一步缓解 CVE-2026-109618
CVE-2026-109618 通过耗尽 PHP 进程内存触发。建议结合业务实际情况,在启用托管规则基础上,进一步配置自定义规则,缩小该漏洞的暴露范围,同时尽快升级 PHP。
拦截不必要的 multipart 请求
CVE-2026-109618 和 CVE-2026-109619 漏洞高度依赖 multipart 请求处理。若站点的部分路径不存在文件上传、表单提交等 multipart 业务,可将这些路径上的 multipart 请求直接拦截。
在 Web 防护 > 自定义规则 > 精确匹配规则 中新增规则:
匹配条件:自定义请求头部,头部名称填 Content-Type,运算符选"包含",取值填 multipart/form-data。
匹配条件:请求路径(Path),运算符选"不等于",取值填实际需要接收 multipart 请求的路径,例如 /api/upload。
处置方式:拦截。
拦截不必要的超大正文请求
攻击者需要向 PHP 进程填充大量数据才能触发内存耗尽。若站点没有接收超大正文的业务场景,可为请求正文设置长度上限,超出上限的请求直接拦截。
在 Web 防护 > 自定义规则 > 精确匹配规则 中新增规则:
匹配条件:请求正文,运算符选"长度大于",取值填 8192(8 KB)。
处置方式:拦截。
说明:
EdgeOne 安全策略的正文扫描长度上限默认为 10 KB,如有超过 10KB 正文请求,请升级订阅企业版。
升级 PHP 至修复版本
建议尽快将 PHP 升级至 8.5.12、8.4.27、8.3.36 或 8.2.35。同时建议复核 memory_limit、post_max_size、upload_max_filesize 的配置,避免为单个请求分配过大的内存与请求体上限。
说明:
无法立即升级时,可将 session.upload_progress.enabled 设置为 0 作为临时缓解措施。需要说明:PHP 官方已明确这不是完整修复,且 CVE-2026-109619 存在多条失效状态消费路径,关闭上传进度只能关闭其中一条,不能替代版本升级。