AI挖出PHP引擎漏洞,十年版本全中招

PHP 官方 10 月 21 日一次放出四个安全版本:8.5.12、8.4.27、8.3.36 和 8.2.35,修复 CVE-2026-109618 与 CVE-2026-109619 两个漏洞,CVSS v4.0 评分都是 9.2。未登录的远程攻击者就能利用,最坏结果是远程代码执行。官方在公告里说,没有完整的临时缓解办法,升级是唯一彻底的修法。

发现这组漏洞的是云安全公司 Wiz,它给这次事件起名 PHP2Shell。Wiz 的研究团队在挖洞过程中用到了自家的 Wiz Atlas,以及 Google 的 Gemini 4 Argon 和 OpenAI 的 GPT-5.6 Sol。

问题出在引擎本身

两个 CVE 背后一共是四个缺陷:上传进度反序列化器的释放后重用、远程读取进程内存、致命错误回溯的释放后重用,以及 OPcache 的类型混淆。共同的根子在 PHP 处理致命错误的方式上,尤其是内存耗尽导致的那种。

请求异常终止后,内部状态里会残留损坏的数据;同一个工作进程接着处理下一个请求时,又把这些陈旧状态拿来复用,于是出现内存泄露或内存破坏。攻击者即便不执行代码,也能从进程内存里读出密码、令牌、API 密钥。

漏洞在 PHP 引擎里,跟上层应用写得安不安全没关系。 Wiz 在 WordPress、Drupal、Joomla 的最新容器镜像上都演示了利用,一个只输出 Hello World 的页面也可能中招;应用从没调用过 session_start(),内存泄露照样成立。受影响范围一路追溯到 PHP 5.4,过去十年发布的每个版本至少踩中其中一个问题。

AI 在哪一环出了力

Wiz 的时间线是:8 月 19 日发现第一个漏洞,8 月 24 日报给 PHP 安全团队,9 月 21 日 PHP 确认并开始准备协同修复,10 月 21 日公开。从报告到补丁上线将近两个月,大部分时间花在修复和协调上。

按 Wiz 的说法,Argon 参与了发现漏洞、写利用、检测攻击和验证补丁几个环节;大模型帮研究员把利用代码适配到不同的 PHP 版本、配置和内存布局,失败了就分析原因再迭代。Wiz 的原话是:

“Frontier AI models substantially reduced that barrier, turning a longstanding flaw into an exploit.” (前沿模型大幅降低了门槛,把一个存在已久的缺陷变成了可用的利用。)

Wiz 称一名研究员一周内完成了过去顶尖团队要做几个月的工作。OpenAI 方面也就这次协同披露发了文章;公开报道提到,OpenAI 还放出了一个 Codex 技能,帮网站排查自己是否受影响,具体覆盖哪些场景目前无法逐项核实。

国内老站的麻烦

国内大量中小网站、企业官网和论坛跑在 PHP 上,用的往往是建站面板一键装好的环境,版本停在 7.x 的并不少见。从官方发布列表看,这次补丁只覆盖 8.2 到 8.5 四条分支,7.x 早已停止支持,拿不到官方修复;8.2 也只维护到今年 12 月 31 日。

还没升级的站点,Wiz 列了几个排查信号:异常的 multipart 请求之后紧跟内存超限报错、HTTP 500 反复出现、PHPSESSID Cookie 异常大或格式错乱、PHP 工作进程频繁异常重启。Cloudflare、Fastly、Google 等厂商已经上线了防护规则,套了 CDN 的站点能挡一部分,但官方的结论没变,补丁打上才算完事。

参考来源:PHP 官方安全公告、Wiz 研究博客、CocoLoop、OpenAI 安全公告;核验修复版本号、CVE 编号与 CVSS v4.0 评分、受影响版本范围。