把 PHP 5 当作受影响且没有补丁
PHP 5.6 是 5.x 的最后一个分支,在 2018 年 12 月 31 日 结束了支持。它的最后一个版本是 5.6.40。更早的 5.x 分支在那之前好几年就已经结束。
针对 PHP2Shell,PHP 项目列出了 8.2 到 8.5 的修复,并为 7.4、8.0 和 8.1 发布了源码 backport 分支。5.x 什么都没有,连一句说明都没有。
PHP 项目没有说 5.x 是否存在同样的缺陷。一些二手来源声称 PHP 5 及以后的所有构建都受影响。官方公告只点名了 8.2 到 8.5,而 NVD 记录里的版本范围在形式上也覆盖了更老的构建。这两种说法我们都无法针对 5.x 确认,也不知道有哪个公开测试可信。
稳妥的假设是,PHP 5 受影响,上游没有修复,以后也不会有。
PHP 5 本来就不安全
跑 PHP 5.6 的服务器从 2019 年初起就再没有拿到安全修复。早就该迁出 PHP 5 了。PHP2Shell 让你剩下的时间更短。
谁还在卖 PHP 5 构建
有些厂商在 PHP 项目停止维护后继续给旧版 PHP 打补丁。就我们找到的信息看,没有一家确认过自己的 PHP 5 构建覆盖了这两个 CVE。我们在 2026 年 10 月 21 日最后一次检查时的状态如下。
| 来源 | PHP 5 覆盖范围 | PHP 5 的 PHP2Shell 状态 |
|---|---|---|
| TuxCare ELS | 产品页列出从 5.2 起的 PHP | 在它的跟踪器里,两个 CVE 我们都没找到条目 |
| CloudLinux alt-php | 提供 5.2 到 8.5 的构建 | CloudLinux 称构建“正在准备”。只有 alt-php74 的构建标为已发布 |
| Ubuntu Pro 加 Legacy Support | 14.04 带 php5 5.5.9,16.04 带 php7.0 | USN-8948-2 中列为已修复。注意是 5.5.9,不是 5.6 |
| HeroDevs NES | 从 PHP 7.2 起 | 不覆盖 |
Red Hat 对 RHEL 6 和 RHEL 7 的数据前后不一,这两个版本带的是 PHP 5.x 构建。它把 RHEL 6 列为不受 CVE-2026-109618 影响,CVE-2026-109619 标为“no fix planned”,对 RHEL 7 的说法互相矛盾。别把这当成没事的证明。这些数据只涉及 Red Hat 自己的旧构建,问题仍然没有定论。
笼统承诺“覆盖 5.x”,并不能说明 CVE-2026-109618 和 CVE-2026-109619 的情况。按每个 CVE 编号逐一问厂商,并拿到书面答复。更详细的对比见 旧版 PHP 的选择。
这周该做什么
- 弄清楚 PHP 由谁运行。 在自己的服务器上执行
php -v,记下 SAPI。用虚拟主机的话,打开面板里的 PHP 设置。如果那里只能选 PHP 5,说明主机商已经落后了。看一下 虚拟主机指南,并按 情况判断 里的问题去问。 - 能减少的暴露面先减少。 站点不需要公开的话,在代理上给它加登录或 VPN。这样能缩小暴露面,但并没有修复漏洞。
- 规划迁移。 5.x 没有补丁可打,迁出去就是修复。
- 检查有没有被入侵。 老旧环境还带着很多其他没修的漏洞,要找找以前被入侵的痕迹。见 打补丁之后,WordPress 站点另见 被入侵后怎么办。
如果服务器由你自己管理,这周又迁不走,WordPress.org 自己的 PHP2Shell 公告建议,自己管理服务器且运行 8.2 以下版本的站长,在迁移期间考虑让服务器下线。它引用的是英国 NCSC 的意见。这条建议出自 WordPress.org。
现实可行的迁移路线
从 5.6 直接跳到 8.4 很少能成功。分成两步走,每一步都保留一份能正常运行的站点副本。
第一步,5.6 到 7.4。 这是最大的一跳。PHP 7.0 删除了老的 mysql_* 函数,还在调用它们的代码都要改用 mysqli 或 PDO。PHP 5 时代的插件、主题和库往往有新版本,没有的就换掉。参照 PHP 手册里 5.6 到 7.0 的迁移指南,然后在测试副本上逐个过 7.1 到 7.4。PHP 7.4 本身也已结束支持,只把它当作中转站,接着往上走。
第二步,7.4 到 8.4。 见 7.4 升到 8.4 指南。8.4 支持到 2028 年 12 月 31 日,PHP2Shell 的修复从 8.4.27 起包含在内。
WordPress 方面,当前的 core 把 PHP 7.4 及以上列为可运行范围,推荐 8.3 或更高。跑在 PHP 5.6 上的 WordPress 站点,core 多半也很旧,所以 PHP 迁移和 WordPress 更新要一起做。见 查看 PHP 版本 和 切换 PHP 版本。
迁移不现实的时候
如果应用很老、没人维护,也没人能修,可以考虑下面几条路。
- 重建。 小站点把内容搬到当前的 CMS 上,往往比移植多年积累的 PHP 5 代码便宜。
- 冻结并隔离。 把它转成静态页面,或者把旧应用放在 VPN 后面的私有网络里。
- 付费购买厂商构建, 前提是厂商先确认两个 CVE 都覆盖你正在用的版本。
不管选哪条,都把做出决定的日期记下来。完整的选项列表见 PHP 生命周期结束。
最后审阅:2026年10月22日