夜雨聆风学习资料网

ARTICLE · 1244505

AI挖出藏了十几年的底层PHP漏洞,网络安全快成了一个笑话!多家政府网站连夜抢修!

AI挖出藏了十几年的底层PHP漏洞,网络安全快成了一个笑话!多家政府网站连夜抢修!
卡洛研究所页眉

AI 揪出 PHP 高危漏洞,为什么修好它比找到它更难?

如果你用 WordPress 搭过博客、经营独立站,或把公司官网交给服务商维护,这次 PHP 安全更新值得确认一下:需要检查的,是网站背后运行的 PHP 有没有打补丁。

10 月 21 日,PHP 发布紧急安全更新,修复两个可能导致未登录攻击者远程执行代码的漏洞。OpenAI 随后披露,Calif 借助 GPT-5.6 Sol 参与发现了关键问题,Wiz 也独立发现并报告了相关漏洞,PHP 维护者负责修复与发布。

这组漏洞被称为 PHP2Shell。它让人看到 AI 已经能够参与基础软件的深层安全研究,也暴露出另一个现实:从找到漏洞,到让各家网站真正运行修复后的软件,中间还有很长一段路。

严重漏洞协同响应文章的标题与日期

图 1|展示严重漏洞披露后的全球协同响应主题

目录

  1. 先说清楚:70%到底代表什么
  2. 一个异常退出,为什么会变成安全漏洞
  3. AI这次具体帮上了什么忙
  4. 找到漏洞之后,修复为什么仍然很难
  5. 有网站的人,现在应该确认什么

01|先说清楚:70%到底代表什么

“全球 70% 网站爆雷”很容易让人以为,大半个互联网已经被攻破。这个数字需要拆开看。

W3Techs 在 2026 年 10 月 22 日的统计是:在它能够识别服务端编程语言的网站中,69.3% 使用 PHP。 这是语言使用占比,统计范围也有前提,不能直接当成受攻击网站比例。

PHP 是在服务器上处理网页请求的编程语言。你打开一个博客、提交一张表单、在网店下单,背后都有可能是 PHP 在处理数据。WordPress、Drupal、Joomla 等常见建站系统都依赖它。

这次的风险也因此格外广:问题出在 PHP 引擎本身。PHP 官方要求所有用于处理网页请求的 PHP 部署检查并更新,包括 PHP-FPM、Apache 的 mod_php 等运行方式;具体攻击路径会随部署条件变化。

PHP2Shell漏洞标识与漏洞编号

图 2|标识 PHP2Shell 及两个相关漏洞编号

两个编号分别是 CVE-2026-109618 和 CVE-2026-109619,PHP 公告给出的 CVSS v4.0 评分均为 9.2。

Wiz 报告称,研究团队在测试时使用的 WordPress、Drupal、Joomla 最新容器镜像中,演示了无需登录的远程代码执行,还验证了从 PHP 进程内存中泄露敏感数据的风险。这里说的是研究者验证过的测试环境,不能据此推算全网已经被入侵的数量。

02|一个异常退出,为什么会变成安全漏洞

“远程代码执行”可以理解为:攻击者从网络另一端发来请求,服务器却开始执行对方指定的代码。它比普通页面报错严重得多。

理解这次问题,可以先想象一张登记表:程序准备新增一行,还没把内容填完整,就因为内存不足突然中断。收尾程序却按照“已经登记成功”的状态处理这行数据。

另一类问题是,上一条请求结束时,内存已经释放,程序仍保留着指向旧位置的内部状态。等下一条请求到来,又把失效状态拿来使用。

PHP 官方分别将这两类问题概括为内存耗尽(OOM)造成的状态损坏,以及残留全局状态导致的风险。触发和利用需要满足具体条件,但危险之处在于:异常发生后,程序可能继续相信已经不正确的内部数据。

请求与远程内存泄露的原理示意图

图 3|展示请求引发内存异常与敏感数据泄露的关系

图里的 Secrets、Tokens 指服务器内存中的敏感数据,Memory Dump 指取出的内存内容。研究报告说明,敏感数据泄露并不总要以取得远程代码执行权限为前提。

这也解释了为什么“我的网站代码很简单”不构成充分保护。PHP 官方指出,mod_php 的部分已验证攻击可以在网站自己的应用代码运行前触发,单靠登录验证或业务代码里的检查挡不住这条路径。

03|AI这次具体帮上了什么忙

Calif 研究者 Ryan Austin 在技术文章中回顾,他熟悉 PHP 的漏洞历史,从早年的内存限制问题切入,让模型检查相关代码。团队在 7 月 30 日启动审计,随后找到多条可利用路径。

发现一个异常顺序后,他们进一步让模型把错误模式整理成 SKILL.md,作为可以重复使用的审计指引,再去检查其他代码。这个方法帮助团队在会话上传进度处理等位置继续找到问题。

这对经常使用 Agent 的人很有启发:一次调查积累出的判断,可以写成下一轮能重复执行的检查方法。研究者不必每次从头描述相同的线索。

Calif 还在技术文章中用漫画呈现了研究过程,用来概括研究者从接到线索到展开调查的经历。

接到线索并展开调查的研究过程漫画

图 4|用漫画概括从接到线索到展开研究的过程

开头,研究者在控制台前睡着,身旁站着机器人;警报响起后,他抬头问:“又一个漏洞?”接着门铃响了,门外留下一个信封,把他引向新的调查。

信中问的是“你准备好服下红色药丸了吗?”,借用的是《黑客帝国》中选择追查真相的比喻。

Wiz 的公开报告还列出了团队使用的 Wiz Atlas、Gemini 4 Argon 和 GPT-5.6 Sol。它们参与了漏洞研究、验证等工作;这次成果不适合简单归结为某一个模型单独完成。

Calif 也强调,熟悉目标和漏洞历史仍然重要,简单提示词还不能让模型找出所有漏洞。人的作用包括选择方向、判断发现是否成立,以及验证结果。

04|找到漏洞之后,修复为什么仍然很难

AI 可以加快调查,但修复基础软件还要回答一系列工程问题:改动会不会影响现有程序?第三方扩展还能不能正常运行?旧版本和不同发行版怎么更新?

PHP 基金会 10 月 21 日的复盘提到,相关 OOM 问题在 2024 年就已有线索。几种修复方案各有代价,加上决策机制与人手不足,修复工作曾反复停滞。后续明确的远程代码执行报告,让问题的实际影响进一步清晰。

安全修复与后续加固复盘文章的标题

图 5|展示安全修复与后续加固的复盘主题

发现速度提高之后,维护者仍需要时间与资源做判断、审补丁、测试并完成发布。

披露前的消息泄露又压缩了准备时间。按 PHP 基金会记录,CVE 编号先开始传播,演示视频随后误发,团队把原定 10 月 22 日的发布提前到 10 月 21 日。

Cloudflare 表示,已经观察到相关攻击流量,并为启用其 Web 应用防火墙(WAF)的免费和付费用户部署防护。PHP 基金会则在复盘中说明,团队在正式披露时检查了流传的漏洞验证程序(PoC),尚未识别出可工作的利用程序。

免费和付费WAF默认防护的启用说明

图 6|说明免费和付费 WAF 默认防护的启用范围

这两项观察不能直接拼成“大量网站已经被攻破”:攻击流量、可工作的攻击程序、服务器实际失陷,是不同的事实。对运营者来说,已经明确的行动仍然是尽快完成更新,而不是等待损失数字出现。

荷兰国家网络安全中心(NCSC)自己的应对,就是一个具体例子。它在10月22日更新的公告中确认,曾出于预防目的暂时下线官网,并要求尚未完成更新的脆弱系统继续保持离线,直到补丁安装完成。

PHP漏洞公告中的预防性下线说明

图 7|说明预防性下线网站及补丁已可用

图中公告首段说的是:NCSC曾临时关闭自己的网站,其他一些机构也采取了同样措施,目前修复补丁已经可用。荷兰政府10月21日的说明还列出了Overheid.nl、MijnOverheid.nl和数字身份认证服务DigiD等预防性下线的服务。为了完成修复,网站维护方有时需要先暂停服务,再部署更新、检查并恢复访问。

05|有网站的人,现在应该确认什么

第一步:确认实际处理网页请求的PHP

如果你使用 WordPress,官方给出的查看路径是:

❝

后台 → 工具 → 站点健康 → 信息 → 服务器。

主机控制面板通常也能查看 PHP 版本。托管网站可以直接询问服务商,是否已为你的站点完成 PHP2Shell 修复,以及相应服务是否已重启并加载更新。

自己维护服务器时,要覆盖实际使用的运行实例、容器和网站。终端里的 php -v 只说明当前命令行 PHP 的版本,不足以单独证明网页背后的 PHP-FPM 或其他实例已经修好。

第二步:核对修复版本或发行商补丁

截至 2026 年 10 月 22 日,本次 PHP 官方修复版本如下;同一分支后续稳定修复版也应结合官方公告核对。

PHP分支
本次修复版本
8.5
8.5.12
8.4
8.4.27
8.3
8.3.36
8.2
8.2.35

Linux 发行版和长期支持服务可能采用回补补丁,版本字符串未必与上表完全一致,需要查对应维护方公告。PHP 8.1 及更旧分支已无常规官方更新;部分旧分支的源码回补也不等于所有主机服务商已经完成部署。

WordPress 官方明确,这次修复对象是 PHP,不会为这两个问题单独发布 WordPress 更新。只升级插件、主题或 WordPress 本身,不能代替服务器 PHP 更新。

第三步:把版本检查当成线索,完成更新后再验证

OpenAI 已公开 php2shell-checker,提供面向网址和服务器的版本检查 skill。它能帮助收集版本信息,但不是一次完整的漏洞检测或入侵排查。

仓库说明,工具主要读取网页响应头或命令行版本。网站隐藏版本、响应中没有相应信息等情况会返回 UNKNOWN,这不代表安全;OK 也只是按版本进行判断,并未独立验证补丁。

更新后,还需要确认运行中的服务已经加载新版本,并检查网站主要功能是否正常。如果此前已有可疑迹象,更新之外仍应检查日志和异常行为。Cloudflare 等提供的 WAF 防护可以降低部分暴露风险,但维护者仍要求安装 PHP 修复。

这次事件给 AI 使用者和网站运营者的启发并不相同。前者可以学习如何把一次发现整理成可复用的检查方法;后者最有用的下一步,是向自己的网站维护方拿到一个明确答案:实际运行的 PHP,是否已经应用了这次安全修复?

卡洛研究所关注二维码页脚

相关学习资料