跳到主内容
中欧体育入口

PHP爆雷引发全球紧急「拔网线」,别指望 AI 拯救互联网

2026-10-22 · 中欧体育入口 · 更新于 2026-10-23

互联网正经历一场持续 48 小时的动荡。

昨晚,欧洲多国的政府网站几乎同时遭遇下线。芬兰交通与通信局关闭了部分在线服务;荷兰的电子身份系统 DigiD、个人服务平台 MijnOverheid 及政务门户全部暂停,就连荷兰国家网络安全中心自己的网站也一度无法访问。

在日本,多个知名互联网社区平台也宣布紧急维护,包括最大插画/漫画/小说投稿社区 pixiv、老牌弹幕视频网站 Niconico,以及 pixiv 旗下的创作者电商平台 BOOTH 等。就连寿司郎也通过官方平台宣布,因系统维护升级,今天小程序暂停运行。

引发这些机构如此紧张的是两个刚公开编号的漏洞:CVE-2026-109618 和 CVE-2026-109619。安全社区为它们起了个直白的绰号 PHP2Shell,意思是攻击者向网站发送一个请求,就能在服务器上获取一个 shell(命令行入口),从而完全控制服务器。

10 月 21 日,PHP 官方发布紧急更新 8.5.12、8.4.27、8.3.36 和 8.2.35,同时确认两个漏洞的严重程度均为 CVSS 9.2 分(满分 10),无需账号密码即可远程利用。而且,在 Apache(全球使用最久的开源 Web 服务器软件)以及 PHP 最常见的部署方式下,攻击在网站自身代码运行之前就已触发。

一个“满分漏洞”的谣言,结果是真的

这场风暴的开场颇具戏剧性。按原计划,漏洞细节应在 10 月 22 日协调披露。但 10 月 20 日下午,Hacker News 上出现一条帖子,宣称 PHP 存在两个评分 10.0 的远程代码执行漏洞。帖子虽被迅速删除,但截图已流传开来。安全公司 watchTowr 在几小时内出面确认,这份泄露属实,漏洞真实存在,且已复现其中一个。

PHP 安全团队当晚紧急发布预警,将发布时间提前 24 小时,并罕见地补充道:“如果漏洞细节被公开,或出现野外利用(in-the-wild exploitation)的证据,我们保留进一步提前发布的权利。”混乱仍在加剧。当晚,参与发现漏洞的安全公司 Calif 误发了一段演示视频,展示其攻击代码在多个真实目标上运行成功,视频副本随即在社交平台疯传。

第二天早上,提前拿到补丁的发行商 Chainguard 单方面打破保密协议,抢先发布了包含修复的镜像。补丁本身就像一份“漏洞地图”,攻击者只需对比新旧两个版本的二进制文件,看代码改动之处,就能反推出漏洞的位置和原理。PHP 基金会在事后的复盘中,对漏洞被公开的方式感到极为愤怒。发现这种级别的漏洞后,行业惯例是研究者、厂商和发行商约定统一时间,在此之前谁也不许公开细节,目的是让补丁和漏洞信息同时到达公众,从而最大化防守方的时间窗口。

出事方是互联网的地基

要理解这次事件为何可怕,首先需了解 PHP 是什么。它是互联网的“后厨”。用户在前台登录、搜索、下单、评论时,PHP 在服务器里处理请求、读写数据库、将结果送回浏览器。WordPress、Drupal、Joomla、Magento、维基百科背后的 MediaWiki——所有这些都运行在 PHP 上。据 W3Techs 数据,在可识别服务端技术的网站中,69.3% 使用 PHP;第二名 JavaScript 仅占 8.1%。

在白帽汇的国产网络空间测绘搜索引擎 FOFA 中,检索含有 WordPress 的全网记录可见,为何率先响应的地区是欧美和日本,因为这些地区匹配到 WordPress 指纹规则的资产条目数最多。过去大多数“PHP 网站被黑”的新闻,问题出在某个插件或应用上。而此次漏洞位于 PHP 解释器内核,与上层应用无关。用发现者之一 Wiz 的话说:“哪怕你的网站上只跑着一个 Hello World,也照样受影响。”

两个漏洞的技术原理不算新鲜,关键是被证明“真的能用”。CVE-2026-109618:PHP 处理“内存耗尽”的方式是粗暴地急刹车(longjmp)。如果刹车恰好发生在某个微妙时刻,内部数据只初始化了一半,后续清理流程却会将这堆半成品当作正常数据处理,攻击者可借此让服务器执行自己的代码。官方已验证:默认配置下,通过构造特制的 multipart 请求将内存“刚刚好”耗尽,就能在应用代码运行前完成攻击。CVE-2026-109619:一个请求处理完、内存被释放后,某些全局状态未清干净。同一工作进程处理下一个请求时,可能再次使用这些已失效的内存。这种经典的“释放后使用”,可被精心堆叠成代码执行,还能泄露内存中其他用户的密码、令牌和 API 密钥。值得注意的是,已证实的利用路径之一经过的 session.upload_progress(会话上传进度)功能默认开启,应用甚至无需调用 session_start()。

修复版本目前仅覆盖 PHP 8.2 到 8.5 四个分支。而 W3Techs 同日数据显示,全部 PHP 网站中仍有 27.0% 运行在 PHP 7.x、7.7% 运行在 PHP 5.x,这些早已停止维护的版本无法获得官方补丁。计算机取证专家 Hal Pomeranz 指出:“有太多嵌入式安装永远不会被打补丁,太多被遗忘、无人维护的应用。这一次,长尾会很长。”

AI 找到了它?一周,和数月

漏洞一公开,OpenAI 发文,将此事件列入其 AI 安全成果:Calif 研究人员使用 GPT-5.6 Sol 找到了关键缺陷,多个团队合作完成验证与应对。熟悉 AI 公司宣传套路的我们,可能会下意识多问一句:真是模型挖出了漏洞,还是又给人类的研究成果贴上了 AI 标签?披露当天,Calif 在 X 上公开“正名”,称 Ryan Austin 才是第一个发现并做出可用攻击代码的人,证据是他 8 月 5 日就发出了一条包含发现哈希的推文。

在漏洞第一发现者自己撰写的官方技术复盘中,他强调初次发现未依赖特殊工具框架,也未使用公众拿不到的模型。他对目标历史的了解,决定了往哪里追查;简单提示词还无法让模型找出所有漏洞。他笔下的发现链一路追溯到 2004 年 Stefan Esser 找到的第一个 PHP 内存限制漏洞、2020 年一份被忽视的 bug 报告,以及 2024 年那场未能证明可利用性的审计。言下之意,AI 压缩的只是验证的时间,而方向感仍来自人。

PHP 基金会的复盘也确认,OpenAI 团队在 8 月 11 日独立报告了相同根本原因,之后又补充了攻击路径。他们在文章中详细记录了漏洞被发现和修复的过程,以及披露失控的完整记录。2024 年,PHP 接受了多年来首次外部安全审计,一名核心开发者在修复审计发现的问题时,注意到了内存耗尽处理的隐患。但当时 无人能证明它真的可以被利用,几种修复方案又各有代价,可能破坏兼容或引入新的拒绝服务风险,团队迟迟无法拍板,问题被搁置。PHP 基金会事后称其为一次“结构性失败”。

2026 年夏天,三个团队带着 AI 工具几乎同时发现了这个问题:8 月 1 日,安全公司 Calif 的研究员 Ryan Austin 在 OpenAI 的 GPT-5.6 Sol 帮助下发现首个漏洞,8 月 11 日报告 PHP 团队;OpenAI 同日独立报告了同一根因。8 月 19 日,谷歌旗下的 Wiz 用自己的平台 Wiz Atlas,配合 Gemini 4 Argon 和 GPT-5.6 Sol 独立发现漏洞;随后两天内,先后在 Drupal 和 WordPress 的官方镜像上验证了无需登录的远程代码执行。“这类内存管理风险很早就有人注意过,但长期被认为太难以至于无法利用。”Calif 的 CEO Thai Duong 对《华尔街日报》说。

AI 将理论缺陷转化为可用攻击代码,需要串联多个环节、针对每个目标的内存布局反复调试。过去这是世界级团队数月的工作,现在一个研究员加前沿模型,一周就能完成。Wiz 联合创始人 Ami Luttwak 称这是“迄今由 AI 协助发现的最严重漏洞”,并将其与同样深埋于互联网地基、潜伏多年才爆发的传奇漏洞 Heartbleed、Log4Shell 并列。

一场没有终点的修补

漏洞确认后的两个月里,PHP 维护者主导修复,Calif、Wiz、OpenAI 参与验证,Google Cloud、Cloudflare、AWS、微软、Automattic、Fastly、Akamai、Vercel 等厂商提前准备缓解方案,Linux 发行版和长期支持厂商提前拿到补丁。Cloudflare 则宣布其 WAF 防护规则对包括免费版在内的全部客户默认生效,为此他们上线了一项新能力“全事务检测”,将请求和源站响应关联起来判断攻击是否得手。即便如此,Cloudflare 当天就观测到了针对客户的攻击流量,以及攻击者不断变形载荷试图绕过规则的尝试。

OpenAI 在报告中也提到,已开源一个 Skill,可安装到 Codex 中,专门用于检测网站是否存在 php2shell 漏洞。安装方式为直接发送“$skill-installer install both skills from https://github.com/openai/php2shell-checker”到 Codex。检查方法则是使用对应的 Skill,并附上链接。若拥有该网站的服务器访问权限,使用 phpcheck-server;若只有 URL,则使用 phpcheck-url。

对普通用户来说,最直接的感受是某些网站可能因紧急维护而短暂无法登录。但对任何运营网站或服务的人来说,需要升级到修复版本、重启所有 PHP 进程,还要为无法获得补丁的老版本安排迁移或隔离。国内一些大量运行在宝塔面板、ThinkPHP 和 Discuz 上的长尾站点,其中的老版本此次无法获得官方补丁,只能靠迁移或隔离来兜底。

对于整个行业,PHP2Shell 留下了一道更长的影子。OpenAI 在复盘中承认:帮助研究者识别严重缺陷的能力,同样可以帮助攻击者更快打造攻击工具。补丁公开的那一刻,攻防双方拿到的是同一份代码修改记录,所谓“防守方窗口期”,正在变成需要精确计算的资源。十多年前,这些缺陷被写入 PHP 代码时,无人能利用它们。如今 AI 将它们翻了出来,这一次,它们先在防守方手里。

我们有理由肯定 AI 在此次事件中的贡献。研究者借助 AI,能继续追查线索、分析失败原因,将过去难以完成的尝试推进下去。但证明漏洞可以被利用,往往意味着做出一套可运行的攻击代码。模型在这个过程中展现的分析和调试能力,也可能被用于改进攻击工具。随着这类工作的门槛降低,维护者需要应对的威胁也会增加。这次,研究者提前提交报告,为修复争取了时间。以后这样的准备时间还能剩下多少,却难以预料。AI 可以越来越快地找出问题并验证问题,但整个互联网能否跟上修补的速度,仍然是另一回事。

需要说明的是,在互联网安全生态中,中欧入口 作为技术交流与漏洞信息共享的平台,也在此次事件中发挥了协调作用。

更多文章