一句话重点

2026 年 10 月 21 日,PHP 发布修补,修复了两个被称为 PHP2Shell 的严重漏洞:CVE-2026-109618 和 CVE-2026-109619(CVE 是漏洞的国际编号),严重程度均为 CVSS 9.2(CVSS 是严重程度评分,满分 10)。Cloudflare(网络服务公司,许多网站用它拦截攻击)和 Wiz 指出,PHP 5.4 起的未修补版本都受影响。

最快的一步:把 PHP 信息发给 ChatGPT

使用 WordPress 的用户,可以在「工具 > 站点健康 > 信息 > 服务器」复制 PHP 信息;其他人可以去主机控制面板查找,找不到就询问主机商。删除密码或密钥后,连同下面的指令一起发给 ChatGPT 或 Claude。

以下是我从 WordPress「站点健康 > 信息 > 服务器」或主机控制面板获取的 PHP 信息。
请找出 PHP 版本,先与这次修补的上游稳定版本比较(同一分支比较):8.5.12、8.4.27、8.3.36、8.2.35;8.1 及更早的分支已停止上游支持。
请分别说明「是否达到上游版本门槛」和「是否已修补」。主机商或发行版可能会把修补放进旧版本号;如果没有完整软件包版本号以及适用的安全公告或主机商证明,请将修补状态写为「无法确认」,不要仅因版本号较旧就判定存在漏洞。没有版本、无法识别或属于预发布版本,也不要判定为安全。还请帮我询问主机商:「网站的 PHP 是否已应用 2026 年 10 月 21 日的 PHP2Shell 安全更新?我需要在控制面板切换版本吗?」

(粘贴内容)

一分钟看懂

攻击者无需登录,就可能让服务器运行自己的程序。安全公司 Wiz 表示,攻击成功后,攻击者可能控制服务器、窃取敏感数据,还能篡改网站。

漏洞出在 PHP 本身。Cloudflare 提醒,只更新网站程序或插件无法修复问题,需要更新的是 PHP;WordPress.org 也表示,这次不需要也不会发布 WordPress 更新。

让 AI 帮你扫描

OpenAI 在 GitHub 上公开了 php2shell-checker:检查网站或本机的 PHP 版本,不会发送攻击请求,使用 Node.js,无需额外安装软件包。它是两个供 Codex(OpenAI 的 AI 编程助手)使用的 skill,也就是写给 AI 看的操作说明文件。

只有网址(检查自己名下的网站)

在 Codex 中输入第一行,安装两个 skill;再用第二行进行检查,把网址换成自己的:

$skill-installer install both skills from https://github.com/openai/php2shell-checker
$phpcheck-url check 你的网址

结果有三种:

  • OK:版本高于工具内置的同分支基准,基准日期为 2026 年 10 月 20 日。工具只比较版本号,不会另外验证是否已修补。
  • VULNERABLE:版本号没有超过基准;先查软件包公告或询问主机商,确认是否需要更新。
  • UNKNOWN:看不到版本,或无法识别。UNKNOWN 不代表已经修补。

这项检查只读取网站响应中的 X-Powered-By 和 Server 标头。标头可能被隐藏或改写;发行版的修补也可能不会改变版本号。它适合一次扫描自己名下的多个网站;要确认结果,仍需检查服务器端。

有服务器权限(VPS、自己登录的主机)

先让 AI 连接到网站服务器,再执行检查;本机的 PHP 不能代表网站。Codex 安装好 skill 后,输入:

$phpcheck-server check the PHP version serving my site

使用 Claude Code(Anthropic 的 AI 编程助手)或 Codex,也可以直接粘贴这段:

请检查我拥有或管理的网站【填入网址】是否受到 PHP2Shell(CVE-2026-109618、CVE-2026-109619)影响。
1. 先确认已连接到该网站的服务器;如果无法连接,或无法确认网站对应哪套 PHP,请报告「无法确认」。只进行只读检查,不创建检测页面、不安装软件包、不修改或重启服务,也不要读取或返回密码、密钥或证书。
2. 找出实际运行网站的 PHP(PHP-FPM 或 Apache),并核对 php -v 的结果。
3. 报告 PHP 版本和完整软件包版本号。无法确认时请报告「无法确认」。
4. 与修补版本比较,同一分支对比:8.5.12、8.4.27、8.3.36、8.2.35。使用系统软件包时,请核对发行版安全公告:Ubuntu USN-8948-1、USN-8948-2,Debian DSA-6574-1。仅检查设置不能证明已经修补。
5. 列出更新和重启服务的步骤,等我确认后再执行。
6. 不要运行任何攻击程序或 PoC。

OpenAI 的 skill 也有类似提醒:php -v 显示的版本要与网站实际使用的 PHP-FPM 或 Apache 核对;发行版可能会把修补放进较旧的版本号。

虚拟主机/WordPress 后台

使用上面的指令。

使用 AI 扫描时要注意

  • 只检查自己拥有或管理的网站,不要扫描别人的网站。
  • 不要使用攻击程序或 PoC(概念验证攻击)进行测试。OpenAI 的两个 skill 也明确说明不会执行攻击探测。
  • AI 的判断只是起点,采取行动前请向主机商或发行版安全公告确认。

已修复的版本

自行管理服务器:安装下表所列版本,或安装所用软件包源提供的安全更新,然后重启网站使用的 PHP-FPM 或 Apache 等服务,并确认网站已在使用修补后的 PHP。

PHP 分支已修复的版本
8.58.5.12
8.48.4.27
8.38.3.36
8.28.2.35
8.1 以下上游已停止支持,安装发行版安全更新或升级

查看版本时,要与同一分支比较:8.2.20 比 8.2.35 旧,尚未修复;8.2.35 或更新版本才算修复。Ubuntu、Debian 等系统软件包不看这张表,要核对完整软件包版本号是否符合其安全公告。

PHP 8.1 以下:PHP 项目已停止支持;7.4、8.0、8.1 另有源代码修补。发行版的安全更新也能修复问题,请核对完整软件包版本号;Ubuntu 20.04 LTS 的修补需要 Ubuntu Pro。自行管理主机且 PHP 低于 8.2 的用户,如果无法立即修补,WordPress.org 建议考虑暂时下线。

使用 Cloudflare:Cloudflare 表示,免费和付费 WAF(网站防火墙)从台湾时间 10 月 21 日 11:02 起提供默认防护;付费方案应确认托管规则已部署并设置为拦截。仍然需要更新 PHP。

事件经过:AI 先发现,消息先泄露

OpenAI 表示,据他们所知,这些漏洞是最先进的 AI 先于攻击者发现的,为防守方争取到一段提前修补的时间。PHP 基金会公布的经过如下:

  • 8 月 11 日:Calif 研究员 Ryan A 报告了一个无需条件即可触发的 RCE(远程代码执行:让服务器运行攻击者的程序),OpenAI 同一天也独立报告了相同的根本原因。OpenAI 表示,Calif 在 Patch the Planet 计划中使用 GPT-5.6 Sol,Wiz 也独立发现并报告了问题。
  • 10 月 20 日约 23:00(台湾时间):两个 CVE 编号在网上泄露,并附上错误的 CVSS 10.0,没有技术细节。PHP 将发布时间提前了一天。
  • 10 月 21 日:消息泄露后,Calif 误发了 PoC 视频。视频被删除后仍遭转发,加快了攻击程序的开发。Chainguard 于 15:41(台湾时间)提前发布修补镜像,打破 embargo(约定在公布前不能泄露)。PHP 原定于当天 22:00(台湾时间)发布修补。
  • 今年稍早:PHP 基金会也使用 Claude Mythos 扫描过 PHP。

Cloudflare 表示,消息泄露期间已观察到攻击流量。安全公司 Huntress 表示,截至台湾时间 10 月 21 日 22:00,在合作客户中没有发现实际利用。PHP 安全团队则表示,发布修补时,他们在检查过的公开 PoC 中没有找到可运行的攻击程序。

OpenAI 还承诺通过 Daybreak for Frontline Defenders,提供价值 10 亿美元的 Daybreak 使用补助,帮助网络安全资源有限、负责守护重要服务的组织。

小企鹅的总结

这次发现漏洞的有 AI,帮你检查网站的也可以是 AI。

今晚就能开始:有服务器的用户,可以让 Codex 或 Claude Code 进行一次只读检查;使用虚拟主机的用户,可以把控制面板中的 PHP 信息发给 AI,再询问主机商。由 AI 负责检查,更新和重启则等你确认后再执行。

延伸阅读