PHP2Shell:AI 揭示影响全球 70% 互联网的关键 RCE 漏洞
Wiz Research 在 PHP 核心中发现了多个关键内存安全漏洞,这些漏洞影响全球约 70% 的网站,允许未经身份验证的攻击者实现远程代码执行(RCE)或泄露敏感进程内存。
这些漏洞归为两个 CVE(CVE-2026-109618 和 CVE-2026-109619),源于 PHP 处理致命错误和内存分配方式的深层架构缺陷,而前沿 AI 模型的应用显著加速了这些漏洞的发现。
漏洞概述与影响
所有已披露的 PHP2Shell 漏洞都是内存安全问题,根源在于核心引擎如何管理致命错误,尤其是内存不足的情况。这些缺陷会留下损坏或过期的 PHP 内部状态,可被同一工作进程处理的后续请求利用。
影响十分严重,因为这些缺陷存在于 PHP 引擎本身,意味着利用与应用程序无关。即使运行在其上的应用程序(如 WordPress、Drupal 或 Joomla)完全安全,易受攻击的 PHP 版本仍可能被利用。
- 远程代码执行(RCE): 攻击者可以在受影响服务器上实现预认证 RCE。这已通过使用最新容器镜像的 WordPress、Drupal 和 Joomla 得到验证。
- 内存泄露: 攻击者无需实现 RCE 即可读取 PHP 进程内存中的敏感数据。这些内存可能包含属于其他请求或服务器本身的密码、身份验证令牌、API 密钥和证书。
PHP2Shell 漏洞技术深度剖析
这些漏洞利用了 PHP 运行时内特定的时序和状态管理问题。报告给 PHP 的四个可利用漏洞实例遵循一种与引擎处理请求终止和内存重用方式相关的问题模式。
上传进度反序列化器释放后使用
当 PHP 的 Session 模块在上传进度处理期间解码会话数据时,会发生此漏洞。致命的内存分配失败可能中断此过程,销毁请求堆并使反序列化器的全局状态保持发布状态。后续请求可以消耗此攻击者回收的内存,将过期状态转变为内存损坏原语,并结合内存泄露实现未经身份验证的 RCE。
远程进程内存泄露
在请求启动期间,PHP 解析 RFC1867 多部分请求。如果内存不足错误在清理完成前中止请求,PHP 可能会留下指向已释放内存的会话 ID 指针。同一工作进程处理的后续多部分请求可以访问此过期指针,导致 PHP 信任回收的堆内容并将其 URL 编码到 PHPSESSID 响应 cookie 中,从而实现未经身份验证的内存泄露。
致命错误回溯释放后使用
在受影响版本中,PHP 保留最近一次致命错误的回溯。致命的内存不足错误可以在不取消定义此执行器全局值的情况下销毁请求堆。如果同一工作进程在下一个请求早期发出诊断信息,它可以访问悬垂的回溯指针,该指针可能指向攻击者回收的内存,从而实现受控内存损坏和 RCE。
OPcache 类型混淆
OPcache 将编译后的 PHP 结构持久化到共享内存中。持久化过程中的分配失败可能使进程本地状态前进,而共享状态仍认为内存槽可用。当另一个工作进程重用这些槽之一时,过期的共享元数据解析为错误类型的指针,造成跨工作进程类型混淆并损坏共享 OPcache 状态,这被用来构建针对 WordPress 的未经身份验证的 RCE 链。
漏洞发现中的 AI 转折点
前沿 AI 模型在将长期存在的复杂缺陷转化为实用、可扩展的利用方面至关重要。底层代码缺陷已存在十多年,但将其转化为有效的利用需要链接多个漏洞并适应每个目标部署的独特内存布局。
在 AI 之前,这种手动工作——涉及跨不同配置的大量分析、测试和调试——将极难实施和扩展。借助 AI,大型语言模型(LLM)可以调整利用以适配不同的 PHP 版本、配置和内存布局。这显著降低了跨多样化部署扩展攻击的门槛。
这一发展改变了漏洞发现和利用的经济性。随着 AI 降低了开发和调整复杂利用所需的工作量,以前被认为不切实际的目标漏洞变得可行。
使用 Gemini 4 Argon,Wiz 团队展示了为什么前沿 AI 是网络防御的游戏规则改变者。十多年来,这些关键漏洞一直未得到解决,因为漏洞发现和利用极其复杂。我们很高兴看到 Gemini 4 Argon 帮助防御者弥合这一差距,发现漏洞并帮助修补它们。(Raluca Ada Popa,Google DeepMind Gemini 安全负责人)
负责任披露与行业响应
Wiz Research 与 PHP 团队、Calif 和 OpenAI 协调了披露过程。PHP2Shell 披露的时间线如下:
- 2026 年 8 月 19 日: Wiz Research 使用 Wiz Atlas、Gemini 4 Argon 和 GPT-5.6 Sol 发现了第一个 PHP 漏洞。
- 2026 年 8 月 24 日: Wiz Research 向 PHP 安全团队报告了这些漏洞。
- 2026 年 10 月 21 日: 修补后的 PHP 版本发布,并进行了公开披露。
鉴于广泛的影响,行业合作伙伴——包括 Cloudflare、AWS、Microsoft 和 Google——帮助为无法立即应用补丁的客户准备了指南和开箱即用的缓解措施。
缓解与防御
PHP2Shell 唯一完整的补救措施是应用 PHP 团队于 2026 年 10 月 21 日发布的安全更新。在系统修补之前,防御者应监控表明利用尝试的特定入侵指标(IOC):
- 异常的多部分请求后跟内存限制错误或重复的 HTTP 500 响应。
- 意外过大或格式错误的
PHPSESSID响应 cookie。 - 无法解释的 PHP 工作进程频繁重启。
防御者应参考 Wiz Threat Intel Center 公告,通过 Wiz Defend 和 Sensor 获取无代理和运行时漏洞检测以及利用检测的内置覆盖。
Sources
相关
- Dispatch
- Dispatch
- Dispatch
- Dispatch
- Dispatch