虚拟主机上的 PHP2Shell:哪些你能修,哪些修不了

在虚拟主机上,PHP 由服务商安装,版本由你选。这对 CVE-2026-109618 和 CVE-2026-109619 意味着什么,怎么检查,以及该问客服什么。

修复由谁来装

在虚拟主机、托管 WordPress 和大多数代理商套餐上,PHP 从来不是你自己装的。服务商负责编译,同时并存多个版本,由控制面板决定你的站点用哪一个。所以 CVE-2026-109618 和 CVE-2026-109619 的修复要分两步才能落到你身上。

  1. 服务商安装已打补丁的构建(8.5.12、8.4.27、8.3.36、8.2.35,旧分支则是服务商自己的 backport)。
  2. 你的站点运行在其中某个已打补丁的构建上。

第 1 步是服务商的事。第 2 步往往要你自己来。如果站点固定在 PHP 7.4 或 8.0,而服务商没有这个分支的修复构建,那么在你切换版本之前,什么都不会被修复。

查看站点运行的版本

控制面板会按域名显示版本,WordPress 在 工具 › 站点健康 › 信息 › 服务器 里显示。把完整版本号贴到 版本检查 里。关键看第二个点后面的数字,8.3.36 已修复,8.3.30 没有。

自己编译 PHP 的服务商有时保留上游版本号,再加一个后缀,所以看起来旧的版本号也可能已经包含修复。拿不准就去问(见下文)。

主流面板发布了什么

大多数虚拟主机服务商用的是少数几种控制面板之一,服务商安装的 PHP 通常由面板厂商编译。

面板厂商称
cPanel (EasyApache 4)8.2 到 8.5 有修复构建,7.4、8.0 和 8.1 有 backport。详情
CloudLinux alt-php(cPanel "Select PHP Version")构建正在准备中。详情
PleskLinux 上 8.2 到 8.4 已修复,其余版本发布后陆续列出。详情
DirectAdmincurrent 和 stable 渠道有新构建。详情

面板厂商出了修复构建,不代表你的服务器上已经有了。服务商按自己的节奏推送面板更新。

服务商怎么说

我们查过的每家服务商都列在 服务商页面 上,附引述和日期。很多家还什么都没发布。没有发声说明不了是否已经装上修复,所以要去问。

如果你用的是 PHP 7.4、8.0 或 8.1

上游 PHP 对这几个分支只发布了源码补丁,没有发布正式版本。有些面板编译了它们(cPanel 编译了),很多服务商不会提供。长期的解决办法是换到仍受支持的分支。我们推荐 PHP 8.4,它支持到 2028 年底,服务商普遍提供。

切换前先做备份。服务商提供预发布副本的话,先在副本上切换。站点在跨版本升级后出问题,最常见的原因是旧插件和旧主题。

去问服务商

问题越具体,客服回复越快。把下面这段复制到工单里,填好方括号。

Hello,

Regarding the PHP security fixes released on 21 October 2026
(CVE-2026-109618 and CVE-2026-109619, "PHP2Shell"):

1. My site [domain] currently runs PHP [version]. Does that build include
   the fixes for both CVEs?
2. If not, when will a fixed build be installed, and which PHP versions on
   my plan are already fixed?
3. Have the PHP workers serving my site been restarted since the update?

Thank you.

第 3 个问题不要删。在为你的站点提供服务的 PHP 进程重启之前,打过补丁的包不会起任何作用。见 打补丁之后。

今天能做的事

不是修复

厂商称,Cloudflare 和部分服务商的防火墙规则能拦截已知的攻击模式。不管前面有什么规则,PHP 本身仍然有漏洞。在打过补丁的构建运行起来之前,只把规则当作临时掩护。

  • 如果面板提供已修复的版本,切换过去。
  • 更新 WordPress 核心、插件和主题,删掉不再使用的。
  • 如果在日志或文件里发现任何异常,修改管理员密码和应用密码。
  • 如果怀疑站点已经被攻击,按 排查指南 处理。

最后审阅:2026年10月22日