极危 CVSS 9.2 官方补丁于 2026 年 10 月 21 日发布 已捕获在野在用利用

您的 PHP 网站是否受 php2shell 威胁?(CVE-2026-109618 & 109619)

免费在线漏洞诊断、最低安全修复版本矩阵(8.5.12、8.4.27、8.3.36、8.2.35)以及主流操作系统加固指南。

被动检测:仅发送单次无害 GET 请求检查响应头,无漏洞探测、不发送 POST 请求。

官方受影响与已修复 PHP 版本矩阵

数据来源:php.net 官方安全公告与 GitHub Security Advisories (GHSA-w8hw-w9fx-j79w 与 GHSA-6wmf-4rv5-p3rp),2026 年 10 月 21 日发布。

PHP 分支 受影响范围 最低安全修复版本 官方维护状态与处理方案
PHP 8.5 < 8.5.12 8.5.12 官方活跃支持 — 升级至 8.5.12+
PHP 8.4 < 8.4.27 8.4.27 官方活跃支持 — 升级至 8.4.27+
PHP 8.3 < 8.3.36 8.3.36 官方活跃支持 — 升级至 8.3.36+
PHP 8.2 < 8.2.35 8.2.35 仅安全维护 (2026年12月停更) — 升级至 8.2.35+
PHP 8.6 < 8.6.0RC4 8.6.0RC4 预发布开发版 — 仅供测试,严禁生产环境使用
PHP 8.1, 8.0, 7.4 全版本受影响 无官方版本 已停更 (EOL) — 极高风险,需发行版后向补丁或迁移
PHP 5.4 – 7.3 全版本受影响 无官方修复 远古废弃分支 — 无官方修复,必须禁用 session.upload_progress
关于 Linux 发行版软件包的重要说明:

Ubuntu、Debian 与 RHEL 等发行版通常通过后向移植补丁修复安全缺陷,而不变更上游主版本号(例如 Ubuntu 22.04 提供 8.1.2-1ubuntu2.28)。在升级前,请参考我们的加固指南检查更新日志。

立即执行:四步应急加固流程

请严格按顺序执行以下步骤,以获得对 PHP2Shell 的完整防御。

01

全面排查所有 PHP 运行时

清查所有 Web 服务器、Docker 容器、基础镜像以及测试站点。注意:命令行 CLI 版本(php -v)可能与 PHP-FPM 或 Apache 实际调用的版本不一致。

查看环境排查命令 →
02

升级至官方安全修复版本

升级到官方修复版本:8.5.12、8.4.27、8.3.36 或 8.2.35。更新 CMS 插件(WordPress、Drupal、Laravel)无法修复 PHP 核心运行时漏洞。

选择平台加固指南 →
03

彻底重启所有 PHP 守护进程

关键步骤:升级后的二进制文件在重启工作进程池之前不会加载到内存。请立即重启 PHP-FPM、Apache、FrankenPHP 与异步队列进程。

sudo systemctl restart php*-fpm apache2
04

验证生效并排查历史日志

确认当前 Web 服务器返回的版本已修复。审查 2026 年 10 月以来的访问日志中是否存在异常的文件上传崩溃,并按需轮转敏感凭据。

重新运行诊断检测 →

服务器终端自查核验命令

请通过 SSH 连接至服务器并执行以下命令,核查正在运行的 PHP 真实版本与 CVE 补丁日志:

Ubuntu / Debian:检查已安装软件包及 CVE 更新日志
dpkg -l 'php*' 'libapache2-mod-php*' | grep ^ii
zgrep -E "CVE-2026-10961[89]" /usr/share/doc/php*-common/changelog*
RHEL / AlmaLinux / Rocky Linux:审查 RPM 更新日志
rpm -qa | grep -Ei "^(php|ea-php|alt-php)" | sort
rpm -q --changelog php-common | grep -E "CVE-2026-10961[89]"
Docker:检查运行中容器内部的 PHP 真实版本
docker exec -it <container_name> php -v
docker exec -it <container_name> php -m | grep session

常见问答与技术解析 (FAQ)

检测工具显示 PHP 版本已隐藏,我的网站是否安全? ▼

不一定。隐藏 X-Powered-By 标头仅仅掩盖了版本号,无法修补底层的内存漏洞。请在服务器终端直接运行检测命令核实实际运行版本。

本检测工具会攻击或扫描我的网站吗? ▼

完全不会。本工具仅发送单次正常的 GET 请求以审查 HTTP 响应标头。不传输任何恶意攻击载荷、不发送 POST 请求体,也不执行任何目录扫描。

如果今天无法完成版本升级,有临时缓解方案吗? ▼

有的。在全局 php.ini 中配置 session.upload_progress.enabled = Off 并重新加载 PHP-FPM,即可切断核心 UAF 攻击链路。但官方强烈建议尽快升级内核。

为什么升级软件包后必须重启 PHP-FPM 或 Apache? ▼

系统包更新仅替换了磁盘上的文件。正在运行的 PHP-FPM 与 Apache 工作子进程仍将存在漏洞的旧代码驻留在内存中,直到服务重启才会加载新程序。

Web 应用防火墙(WAF)能否 100% 拦截 PHP2Shell 攻击? ▼

不能。尽管 WAF 规则可以拦截已知利用载荷,但攻击者可以通过在分块边界中注入混淆数据或调整分块大小,绕过 WAF 的请求体审查阈值。

更早的 PHP 7.4 或 8.0 网站会受影响吗? ▼

会。PHP 5.4 至 8.5 结构上全线受到 RFC1867 进度回调 UAF 影响。由于 7.4 与 8.0 已经 EOL,必须采用发行版移植补丁或禁用上传进度。

该漏洞会影响命令行 CLI 脚本吗? ▼

通常不影响不处理 HTTP multipart POST 请求的纯 CLI 执行。但是通过 Web 访问的 SAPI(PHP-FPM、Apache mod_php、FrankenPHP 等)完全受影响。

WordPress 安全插件能够防御此漏洞吗? ▼

不能。安全插件是在 PHP 引擎完成 multipart 请求解析之后才在 PHP 用户层代码中运行的。此漏洞在任何插件执行之前就已在 C 语言内核中触发。

技术研报:20 篇深度安全分析、C 源码审计、堆利用链拆解与全平台防御指南。