我的网站受 PHP2Shell 影响吗?如何查看网站的 PHP 版本
PHP 安全团队在 2026 年 10 月 21 日修复了两个高危漏洞 CVE-2026-109618 和 CVE-2026-109619,美国 CISA 说它们被称为“php2shell”。修复版本是 PHP 8.5.12、8.4.27、8.3.36 和 8.2.35。要判断你的网站处境如何,只需要一个数字:主机上运行你网站的 PHP 版本号。
简要回答
在 WordPress 后台的“工具 > 站点健康 > 信息 > 服务器”里可以看到 PHP 版本,也可以在主机控制面板里看,或者直接问主机商。PHP 公告列出的修复版本是 8.5.12、8.4.27、8.3.36 和 8.2.35。如果你的版本比同一分支的修复版本旧,请让主机商升级。
哪些版本受影响,哪些已修复?
PHP 2026 年 10 月 21 日的公告说,所有处理网页请求的 PHP 都受影响,漏洞可能导致无需身份验证的远程代码执行。说白了,别人可能不用登录就让服务器执行他的命令。新加坡网络安全局(CSA)说得很直接:这些漏洞影响所有版本的 PHP。
PHP 官方为每个仍受支持的分支各发布了一个修复版本:
| 你的版本开头是 | 修复版本 |
|---|---|
| 8.5 | 8.5.12 |
| 8.4 | 8.4.27 |
| 8.3 | 8.3.36 |
| 8.2 | 8.2.35 |
国家互联网应急中心(CNCERT)的公告给出的受影响范围与此一致:8.2.35 之前的 8.2.x、8.3.36 之前的 8.3.x、8.4.27 之前的 8.4.x,以及 8.5.12 之前的 8.5.x。随这些版本发布的说明写道:“There are no complete mitigations, updating is the only safe choice.”(没有完整的缓解办法,更新是唯一安全的选择。)
关于是否已被利用,截至 2026 年 10 月 23 日:CISA 10 月 21 日的警报(10 月 23 日修订)说,截至发布时,它没有观察到这些漏洞在实际环境中被成功利用,但它们如果不打补丁仍有风险。PHP 公告说,针对一种常见配置,也就是 Apache 的 mod_php,已经有攻击演示,它的风险最高。CNCERT 说,漏洞技术细节与 PoC 已广泛传播。
在 WordPress 里怎么看 PHP 版本?
WordPress 在“站点健康”里显示 PHP 版本。WordPress 官方的“Update PHP”页面给出的步骤是:
- 登录 WordPress 后台。
- 进入“工具 > 站点健康”。
- 点击“信息”选项卡。
- 展开“服务器”一栏。
- 往下找到“PHP 版本”。
WordPress 说明“信息”选项卡只是显示信息,在这里改不了任何设置。在站点健康的“状态”选项卡里,如果 PHP 版本过时,可能会出现一条提示 PHP 版本过时、应当更新的项目,WordPress 把它归为安全类问题。
在 cPanel 里怎么看 PHP 版本?
如果你的主机提供 cPanel,它的 MultiPHP Manager 会列出你的域名以及每个域名使用的 PHP 版本。cPanel 的文档把这个工具放在 Software(软件)分类下。
- 登录 cPanel。
- 打开 MultiPHP Manager。
- 在列表里找到你的域名,看它的 PHP 版本。
如果域名旁边显示 Inherited(继承),cPanel 说明它用的是系统默认版本,只有服务器管理员能设置。这种情况下,屏幕上的版本由主机商决定,升级也要由主机商来做。如果找不到 MultiPHP Manager,可能是主机商关掉了这个功能,cPanel 说主机商可以这样做。
国内常见的虚拟主机面板各有各的界面和名称,请查看主机商自己的帮助文档。
有服务器权限,用命令行怎么查?
如果你自己管理服务器,CNCERT 的公告给出了两种查法:
- 运行
php -v查看 PHP 版本。 - 命令行和网站服务器可能运行不同的 PHP 版本,所以还要用
php-fpm -v,或者带版本号的php-fpm8.3 -v这样的命令,查看网站实际使用的版本。
然后对照上面的修复版本表判断是否受影响。
找不到 PHP 版本怎么办?
问主机商。WordPress 的“Update PHP”页面建议,自己找不到设置时可以给主机商发邮件,并提供了一个询问如何升级到最新 PHP 版本的邮件模板。针对这次的问题,可以直接问两件事:
- 我的网站现在运行的是哪个 PHP 版本?
- 是否已经升级到 2026 年 10 月 21 日 PHP 安全公告中的修复版本(8.5.12、8.4.27、8.3.36 或 8.2.35)?
如果一个账户下有多个网站或域名,每一个都要问到。cPanel 的文档说明,每个域名可以运行不同的 PHP 版本。
版本没修复,该怎么办?
升级 PHP,或者让主机商升级。PHP 公告列出了一些能减少暴露的临时设置,但说这些措施“do not make an installation safe”(不能让安装变得安全)。CNCERT 的公告建议,暂时不具备修复条件的,采取网络隔离、访问限制、下线非必要业务系统等临时措施。CISA 也说,不能马上更新的网站应该先下线。
怎么升级,取决于服务器由谁管理:
- 用的是虚拟主机或托管主机,PHP 归主机商管。请他们把你的网站切换到修复版本,或者切换到有修复版本的受支持分支。
- 面板允许自己选择版本,你也许可以自己切换。如何在 WordPress 网站上升级 PHP 一文有完整步骤,第一步是备份。
如果没法马上升级,英国国家网络安全中心(NCSC)建议检查系统有没有被入侵的迹象。站长视角的处理步骤见网站被黑了怎么办。
网站还在用 PHP 8.1 或更早版本怎么办?
PHP 官方说,PHP 8.1 及更早版本“no longer receive updates from the PHP project”(不再获得 PHP 项目的更新)。它补充说,一些发行版和长期支持厂商提供移植的修复,建议联系厂商了解详情,或者升级到受支持的版本。PHP 安全团队也为 7.4、8.0 和 8.1 发布了最小化的源码补丁,面向自己编译 PHP 的人。
对个人网站来说,就是直接问主机商,有没有给你的版本打上移植的修复。如果没有,PHP 官方给的办法是升级到受支持的版本。CISA 的警报说,运行 PHP 8.1 或更早版本、又不能马上更新的系统,应该先下线。
另外,PHP 8.2.35 的发布说明写明,PHP 8.2 将于 2026 年 12 月 31 日停止支持,之后不再有安全修复。所以用 8.2.35 的网站眼下是修好了,但很快需要换到更新的分支。WordPress 的“Update PHP”页面推荐使用 PHP 8.3 或更高版本。
更多问题
PHP 8.3.36 能防 PHP2Shell 吗?
根据 PHP 2026 年 10 月 21 日的公告,8.3.36 是 8.3 分支的修复版本。另外三个修复版本是 8.5.12、8.4.27 和 8.2.35。PHP 在 10 月 23 日还发布了一份信息性公告,涉及另一个只在少见的会话配置下出现、可能性不大的问题。
WordPress 已经是最新版,还会受影响吗?
会。漏洞在 PHP 里,也就是 WordPress 所运行的语言,PHP 公告说所有处理网页请求的 PHP 都受影响。CNCERT 的公告也点名 WordPress 等基于 PHP 的内容管理系统受影响。保持 WordPress、主题和插件最新仍然是好习惯,但这次的修复是更新 PHP。
网上的 PHP 漏洞检测工具能告诉我安全不安全吗?
下面列出的官方资料都没有提到在线检测工具。PHP 公告给出的是修复版本列表,所以真正要查的是网站运行的版本,以及它是否达到同一分支的修复版本。主机商可以确认,站点健康或控制面板也能看到。
主机商说已经打过补丁,我还需要做什么吗?
在站点健康或控制面板里看一下版本,和修复版本对照,确认补丁确实用到了你的网站上。有多个域名的话,每个都看。如果你有理由怀疑网站在更新前就被改动过,按 NCSC 的建议检查有没有被入侵的迹象。
来源
- Security advisory: Critical remote code execution vulnerabilities, update now, PHP(2026 年 10 月 21 日)
- News Archive - 2026, PHP(含各版本发布说明和 10 月 23 日的信息性公告)
- 关于PHP远程代码执行漏洞分析及修复建议的安全公告, 国家互联网应急中心 CNCERT
- Critical Vulnerabilities in PHP (PHP2Shell), Cyber Security Agency of Singapore
- Critical security issue affecting PHP, NCSC
- Critical vulnerabilities in PHP require immediate patching, CISA
- Update PHP, WordPress.org
- Site Health screen, WordPress.org Documentation
- MultiPHP Manager for cPanel, cPanel Documentation