PHP2Shell 高危漏洞预警:PHP 核心两个未授权 RCE 影响全系列版本,请立即处置

2026 年 10 月 21 日,PHP 核心曝出两枚严重的远程代码执行零日漏洞,代号 PHP2Shell,追踪编号为 CVE-2026-109618 与 CVE-2026-109619。这两起漏洞影响 PHP 5 及之后的所有主版本(PHP 5.x、7.x、8.x 全系),CVSS v4.0 评分高达 9.2,属于最高危级别。

漏洞根植于 PHP 解释器底层核心,攻击者无需任何身份验证,即可在运行 WordPress、Laravel、Drupal、Magento、MediaWiki 等主流 CMS 与框架的服务器上直接执行任意代码并获取系统 Shell。波及面覆盖整个 Web 生态。

漏洞现状与官方响应

PHP 官方安全团队已将紧急安全更新提前至 UTC 时间 10 月 21 日 14:00(北京时间 22:00)发布。根据维护政策,官方补丁仅面向 PHP 8.2 至 8.5 分支发放,具体修复版本为:

  • PHP 8.2.35
  • PHP 8.3.36
  • PHP 8.4.27
  • PHP 8.5.12

对于已结束官方支持的 PHP 8.1 及更早版本,只能依赖 Linux 发行版回移补丁,或直接升级到受支持的大版本。

据 CyberQ 统计,全球公开暴露版本信息的约 150 万台 PHP 主机中,约 59%(逾 88.4 万台) 仍运行 PHP 8.1 及更早版本,风险敞口巨大。

目前 watchTowr 确认尚未发现在野攻击,但安全研究人员普遍预计,补丁公开后 15 分钟内,黑客即可反推漏洞细节并部署大规模自动化攻击程序。补丁发布前暂无完全有效的临时缓解措施。

紧急处置建议

1. 优先躲到 Cloudflare 背后(最快见效)

Cloudflare 已于 UTC 时间 10 月 21 日凌晨 3:02(北京时间 11:02)起,为所有 WAF 用户(包括免费版)默认启用针对 PHP2Shell 两个高危漏洞的防护规则。将站点接入 Cloudflare 可快速降低暴露面,为后续补救争取时间。

2. 无法立即升级时的紧急配置缓解

以下配置必须在全局生效(php.ini 或 FPM Pool),不能使用 ini_set 或 .user.ini。

针对 CVE-2026-109618(内存超限漏洞):

  • 使用 php_admin_value 强制设置 memory_limit = -1,防止代码覆盖并避免触发 PHP 内部内存限制。
  • 调低请求大小限制:无文件上传场景设 post_max_size = 8M,有上传场景设 32M。
  • 在前置 Nginx/WAF 层面限制请求头数量、字段数与嵌套深度。
  • 切勿使用系统的 RLIMIT_AS 或 RLIMIT_DATA。

针对 CVE-2026-109619(状态残留漏洞):

  • 在 php.ini 中设置 session.upload_progress.enabled = 0,并重启所有 Worker 进程。
  • 清理会导致初始化前报警告的废弃配置,修复外部可触发的 Fatal Error 与超时错误。

3. 最终解决方案:升级到修复版本

临时缓解只能争取时间。要彻底消除风险,必须尽快升级到受支持的修复版本(PHP 8.2.35 / 8.3.36 / 8.4.27 / 8.5.12)。对于仍运行 PHP 8.1 及更早版本的主机,建议制定升级计划,尽快完成大版本迁移。

运维行动清单

  1. 立即盘点公网 PHP 资产,确认当前运行版本。
  2. 优先将站点接入 Cloudflare(或同类具备规则的 WAF)。
  3. 按上述建议调整 php.ini / FPM 配置并重启服务。
  4. 尽快升级到官方修复版本。
  5. 严密监控 Web 服务进程是否异常派生 Shell 子进程。

风险窗口已经打开。 补丁一旦公开,自动化扫描与攻击将迅速跟进。请各企业与运维团队立即行动,不要抱有侥幸心理。

安全无小事,升级宜早不宜迟。