简要概述

  • PHP 于 10 月 21 日发布了 8.5.12、8.4.27、8.3.36 和 8.2.35 版本,以修复 CVE-2026-109618 和 CVE-2026-109619,这两个漏洞的评分为 9.2(满分 10 分),可导致未经身份验证的远程代码执行。
  • 芬兰、荷兰和法国在细节提前泄露、且 Cloudflare 报告在修复程序发布前数小时就已出现攻击之后,作为预防措施将政府网站下线。
  • 普通用户无需安装任何东西;修复责任落在网站所有者和托管公司身上,而 PHP 8.1 及更早版本不会获得官方发布。

如果你今天上过网,你一定看到了这场恐慌:一个严重漏洞正威胁着要“攻陷”地球上几乎所有的网站。

芬兰周三刚刚开始关停政府网站,美国国家安全局(NSA)建议所有使用 PHP 的组织关闭其网站,荷兰和法国也采取了同样的做法。而且,这并非网络战。

Myriad:下一家上市的公司会是谁?点击做出你的预测。
Myriad:下一家上市的公司会是谁?点击做出你的预测。

罪魁祸首是 PHP,一种大多数人从未听说过的编程语言。不过,你今天几乎肯定用过它:根据 W3Techs 的数据,在已知服务器端语言的所有网站中,约 70% 由它运行。

PHP 是在网站服务器幕后运行的软件——服务器就是存储网站并构建你所请求的每个页面的计算机。例如,据 WordPress 安全公司 Wordfence 称,每个 WordPress 网站都运行在 PHP 服务器上。

哦,顺便说一句,Wordfence 也宕机了。

PHP 本身新发现的两个漏洞,让陌生人无需登录就能在该服务器上运行自己的命令。安全人士称之为未经身份验证的远程代码执行。其他人则可以称之为“现在换别人开车了”。

如果那台服务器存储着你的账户、你的地址或你的订单历史,那么,这些也都归他们所有了。网络托管商 GoDaddy 警告称,这些漏洞可能让攻击者窃取数据、篡改网站或完全接管服务器。

“像这样的漏洞可能让攻击者通过互联网在受影响的服务器上运行自己的代码,这可能导致数据被窃取、网站被篡改或服务器被完全接管,”GoDaddy 表示。

PHP 公布了什么

资助该语言开发的非营利组织 PHP 基金会于周二发出警报。在 X 上分享的一份声明中,它表示:“PHP 安全团队提前通知:即将于 2026 年 10 月 21 日星期三 14:00 UTC 发布安全更新,包含两个严重漏洞,均被评为 CVSSv4 9.2。鼓励 PHP 用户做好更新准备。如果细节公开或出现活跃利用证据,将提前发布。”

这个 9.2 来自 CVSS,即通用漏洞评分系统,它根据漏洞通过互联网被触及的难易程度以及可能造成的损害等因素来评定漏洞的危险程度。评分范围从 0 到 10,9.0 及以上都被标记为严重——所以这两个漏洞在未达到满分 10 的情况下已经糟糕到极点。

修复程序于周三 UTC 约 13:35 发布,比预告略早几分钟,对应 PHP 版本 8.5.12、8.4.27、8.3.36 和 8.2.35。安全公告毫不含糊:“强烈建议所有 PHP 用户立即更新。”

但发布修复程序和让所有人都实施该解决方案并不是一回事,因此建议保持谨慎。

这些漏洞是如何运作的

第一个漏洞,CVE-2026-109618,会在 PHP 处理请求的过程中途内存耗尽时出现,随后它会把这份只构建了一半的数据当作已完成的数据来处理。第二个漏洞,CVE-2026-109619,会让某位访客请求的残留数据在本应被清除之后仍滞留在内存中,下一个请求可能会撞上它们。

想象一位厨师一直在读取已经扔进垃圾桶的点菜单。往垃圾桶里塞一张假点菜单,厨师就会照着你写的内容做菜。在这个案例中,“点菜单”就是攻击者的代码,而服务器会执行它。

PHP 表示,使用一种名为 mod_php 的常见 Apache 配置的服务器风险最高,在这种环境下,一个已演示的漏洞利用可以“在任何应用程序代码运行之前”生效。换句话说,网站自身的防御措施,比如登录界面和 WordPress 安全插件,甚至根本不会被唤醒。

PHP 基金会的研究人员指出,PHP 的上传进度功能——即跟踪你已发送了多少文件内容的功能——是已确认的入侵途径之一。它十多年来一直默认开启,而实际上很少有网站使用它。

先泄露,后攻击

这一切本不该公开。周二,有人在 Hacker News 论坛上发帖称,两个 PHP 漏洞将于周四披露,同时承认他们“除了‘消息来源:信我,兄弟’之外没有任何证据”。

事实证明这位兄弟说对了。安全公司 watchTowr 证实这些漏洞确实存在,且处于禁发期——即在修复程序准备好之前对细节保密的协议——PHP 将其发布时间提前了一天。

“我们正看到早期攻击出现,并随着新攻击途径的出现不断更新缓解措施,”Cloudflare 首席技术官 Dane Knecht 在补丁发布前近六小时的周三凌晨在 X 上写道。Cloudflare 向所有客户推送了紧急防火墙规则——即阻止已知攻击模式的过滤器——但 Knecht 称它们“只是权宜之计”。

各国政府按下关闭开关

据公共广播机构Yle报道,芬兰国家信息技术中心Valtori出于预防考虑,开始将公共网络服务下线,而荷兰国家网络安全机构则关闭了自己的网站。

法国内政部表示,其省级行政机构网站已“暂时下线,等待该框架的发行方发布安全补丁”。

欧盟网络应急团队CERT-EU告知那些无法打补丁的组织,“考虑在修复方案可用之前,将面向互联网的应用程序与公共网络隔离”。这是官僚用语,意思就是“拔掉插头”。据路透社报道,澳大利亚、日本和英国的机构也表达了大致相同的意思。

病毒式传播的帖子错在哪里

X上病毒式传播的帖子声称“可追溯至2004年”的PHP版本存在漏洞。这源于早期的估计,即自PHP 5以来的所有版本都受到影响,而CERT-EU承认这一估计是基于社交媒体帖子。

电子商务安全公司Sansec将范围定为PHP 5.4及更高版本。所以是2012年,而非2004年——但仍然相当老旧。

PHP只为8.2及更新版本提供官方发布,这使得“旧版本没有修复方案”的说法只对了一半。鉴于此次漏洞的严重性,其安全团队还为7.4、8.0和8.1发布了最基础的源代码补丁,而各Linux发行版也在自行向后移植修复程序。

安全公司Mallory统计,10月20日约有88.4万台面向互联网的主机对外显示运行PHP 8.1或更旧版本,约占公开显示版本的约150万台主机中的59%。一台共享托管服务器可以承载许多网站,因此其背后的网站数量更高。

一些帖子还把Node.js混为一谈,那是另一种网络技术,恰好将其自身无关的安全更新安排在同一天。时机不巧。

即便是已打补丁的版本也不会同时覆盖每一台服务器。PHP 基金会在其声明中表示:“如果你依赖的是由志愿者维护的 https://rpms.remirepo.net,我们敦促你现在就改用发行版软件包或从源码构建,这样你就能立即应用更新。该仓库今天不会有更新。”该声明指的是一个颇受欢迎的、由志愿者运营的、面向 Red Hat 系 Linux 服务器的 PHP 软件包来源。

你真的应该在意吗?

你不应该恐慌,但也不应该一笑置之。例如,一个被入侵的网站并不需要接触区块链就能掏空你的钱包。2024 年,攻击者将 DeFi 协议 Compound 和 Celer 的前端重定向到会盗空已连接钱包的页面,而 Curve Finance 在 2025 年也遭遇了类似的攻击。

那些是 DNS 劫持,不是 PHP 漏洞,但手法是一样的:网站看起来正常,URL 看起来正常,而“批准”按钮却把你的代币发送到了别处。一台被入侵的服务器恰恰可以提供这种页面。

在零日漏洞方面,黑客可以非常迅速地变得非常有创意。

这类漏洞也正变得越来越容易被发现,前沿 AI 模型越来越多地被用于发现软件漏洞,而专家在 6 月告诉 Decrypt,随着这些工具的普及,可能会有更多漏洞浮出水面。

接下来会发生什么,以及该怎么做

一旦补丁公开,攻击者就可以对比新旧代码,准确看出修复了什么,而网络安全公司 Sansec 的取证团队表示,它预计“大规模攻击将在发布后 15 分钟内开始”。2024 年 6 月另一个 PHP 漏洞公开时,Akamai 在其诱饵服务器上在 24 小时内就遭遇了漏洞利用尝试。

那么普通人应该恐慌吗?倒也不至于。你的手机、浏览器和笔记本电脑不需要打 PHP 补丁;这项工作落在运行你所使用网站的人身上。

如果你运营一个网站,请询问你的托管服务提供商 PHP 是否已更新,不要指望 WordPress 替你完成:Wordfence 警告说,自动更新不会应用此修复,并告知网站所有者要弄清楚谁负责更新其服务器上的 PHP。任何使用 8.1 或更旧版本的人都需要计划升级。

“我唯一能说的是,唯一的缓解措施就是给 PHP 打补丁 / 升级,”PHP 核心开发者 Gina Peter Banyard 在 Mastodon 上说。“遗憾的是,我知道得太多了。”

而如果你使用的是 PHP 8.2,你刚得到的修复只是你最后几次修复之一:该版本将于 2026 年 12 月 31 日停止支持,此后它将不再获得任何安全补丁。

加入 72,000+ 读者

在 Google 上添加

将 Decrypt 添加为首选来源,以便在 Google 上看到我们更多的报道。