PHP2Shell:严重 PHP 远程代码执行漏洞(CVE-2026-109618、CVE-2026-109619)

6 2026-10-22 16:15:00

究竟什么是 “PHP2Shell”?

这些漏洞被分别编号为 CVE-2026-109618 和 CVE-2026-109619。安全社区将二者统称为 “PHP2Shell”——这一名称形象地概括了从发起 PHP 请求到在主机上获得实时 Shell(命令行交互环境)的过程。来自 watchTowr、Huntress 和 Tenable 的公开报告指出,这两个漏洞均属于 PHP 核心中的远程代码执行(RCE)漏洞。根据 PHP 官方发布的安全公告,这些漏洞在 CVSS v4.0 评分标准下的分值为 9.2;不过,watchTowr 的首席执行官及部分早期报告则将其评为 10.0 分。一款据称源自 Calif.IO 且同样命名为“PHP2Shell”的漏洞利用工具在网上流传,其说明信息声称该工具适用于从 5.4.0 版本以来的所有 PHP 发行版本。

为何此次事件的影响远超常规的补丁更新?

PHP 支撑着互联网中极其庞大的一部分。WordPress、Drupal、Joomla、Magento、Laravel、WooCommerce 以及无数定制化的 Web 服务,全都依赖于 PHP。正因其影响范围如此广泛,PHP2Shell 漏洞的披露所引发的警报,远非一般安全公告可比。欧盟计算机应急响应小组(CERT-EU)、荷兰网络安全机构,以及澳大利亚、日本和英国的相关部门,均敦促 PHP 用户立即安装补丁,或在完成修复前将网站下线。CERT-EU 于 10 月 20 日发布了专门的安全建议,并建议各机构考虑将面向互联网的应用程序与公共网络进行隔离。

引发紧急应对的泄露事件

通常情况下,协同披露机制能让管理员有时间进行从容的准备工作。但这一次却并非如此。PHP 团队原计划在本周晚些时候发布补丁,并曾预先警告:若相关细节提前公开或出现实际利用行为,补丁发布时间将会进一步提前。10 月 20 日,随着 “PHP2Shell” 相关细节的曝光,这一触发条件随之达成。结果,补丁被迫以紧急方式发布,几乎没有留出任何预备窗口——而这恰恰是防御者们最担心的局面。

补丁已发布,但真正的难点才刚刚开始

“存在补丁”与“成功安装补丁”完全是两码事。只有目前仍获支持的四个 PHP 分支(8.2 至 8.5 版本)能够获取此次更新。据安全研究员 Kevin Beaumont 称,此次修复版本分别为 PHP 8.5.12、8.4.27、8.3.36 和 8.2.35。而 PHP 5.x 至 8.1.x 的所有版本均已停止维护(生命周期结束),预计将不会获得任何官方补丁。

这就是 PHP2Shell 背后残酷的数学逻辑:该软件应用极其广泛,而那些最陈旧、最被忽视的安装实例,不仅修复难度最大,而且几乎永远不可能得到修复。

Wordfence 警告称,自动更新机制无法应用此次修复,因此网站所有者必须查明究竟是谁在负责管理其服务器上的 PHP。虽然许多托管服务提供商会主动推送更新,但也有大量网站是在容器、厂商提供的专用设备,或是 cPanel 和 Plesk 等控制面板中运行 PHP 的——这些环境下的更新往往会滞后。

已有早期攻击报告

“PHP2Shell” 漏洞并非仅仅存在于理论层面。UTC 时间 10 月 21 日 07:43,Cloudflare 报告称已发现针对 PHP 网站的早期攻击。Cloudflare 首席技术官 Dane Knecht 表示,随着新的攻击途径不断出现,公司正在持续更新其防御措施。Cloudflare 已面向所有客户(包括免费版用户)部署了针对已知攻击途径的 Web 应用防火墙(WAF)规则,但强调这仅是权宜之计。研究机构 watchTowr 表示,他们已在实验室环境中复现了 CVE-2026-109618 漏洞;安全公司 Sansec 则预计,一旦补丁发布,攻击者便能借此洞悉漏洞细节,进而发动大规模攻击。

政府网站已开始下线

后果已然显现。出于预防考虑,荷兰和芬兰的政府网站已纷纷下线;荷兰网络安全机构甚至主动关闭了自家的官方网站,以避免面临风险。当国家级机构宁愿选择关闭网站,也不愿在未修补 PHP 漏洞的情况下继续运行,这足以说明这些漏洞所引发的严重程度。

管理员当前应采取的行动

目前并没有什么“神奇”的配置能够彻底消除 PHP2Shell 威胁。PHP 核心开发者 Gina Peter Banyard 简洁地指出:“唯一的缓解措施就是修补或升级 PHP。”另一位 PHP 发布经理在被问及是否可以通过调整配置来应对时,更是直言不讳地表示:“修改 ini 配置也救不了你。”

不过,在进行修复工作的同时,仍可采取一些措施来降低风险。请全面盘点环境中的所有 PHP 安装实例,包括厂商提供的设备(Appliance)、控制面板以及各类内容管理系统(CMS)平台。鉴于修复后的软件包已陆续发布,请优先为面向互联网的系统安装补丁;同时,也请留意您所使用的 Linux 发行版或主机环境是否提供了已包含修复程序的“反向移植”(backported)版本。

同时,请密切关注 PHP 进程所衍生的子进程。攻击行为通常表现为 PHP 工作进程(PHP worker)启动了异常程序,例如 Shell、脚本解释器或下载工具。如果发现系统被入侵的迹象,请立即隔离服务器,妥善保存 Web 和 PHP 日志,并排查是否存在 WebShell、Web 根目录下的新增文件,以及可疑的计划任务或账户。

要点总结

  • “PHP2Shell” 漏洞涉及 CVE-2026-109618 和 CVE-2026-109619,均为远程代码执行(RCE)漏洞,CVSS v4.0 评分高达 9.2。
  • 由于漏洞细节提前一天泄露,官方于 2026 年 10 月 21 日 UTC 14:00(美东时间上午 10:00)发布了紧急补丁。
  • 已停止维护(EOL)的 PHP 版本将无法获得修复;PHP 5.x 至 8.1.x 版本均无官方补丁提供。
  • 荷兰和芬兰的政府网站出于安全预防考虑,已暂时下线。
  • Cloudflare 监测到了早期攻击活动,并部署了免费的 WAF(Web 应用防火墙)规则作为临时缓解措施。

写在最后

“PHP2Shell” 事件再次提醒我们:互联网中最不起眼的基础设施,往往蕴藏着最严重的风险。一个大多数人平时几乎不会关注的编程语言中出现的两个漏洞,竟导致多国政府机构网站被迫下线,并迫使全球系统管理员进入紧急补丁修复阶段。虽然修复方案已经发布,但风险并未随之终结:已停止维护的 PHP 版本将无法获得补丁,自动更新也无法解决这些问题;同时,Cloudflare 已经监测到了早期攻击。如果您运营着基于 PHP 的网站,请务必将今天视为最后期限——确认您所使用的 PHP 版本,并在修复版本发布后立即进行更新。面对“PHP2Shell”这类漏洞,唯一的根本解决之道始终如一:尽快打补丁,且务必全面覆盖所有受影响的系统。

 

下一篇