跳到正文
原文
Wordfence 官方博客· Alex Thomas·· 2 天前精选编辑评分75

Wordfence 解析 Brotli 严重漏洞 CVE-2026-111497 对 WordPress 站点的影响

HTTP2Shell: What the Critical Brotli Vulnerability Means for WordPress Sites

编辑导读

Wordfence 确认 Brotli 严重漏洞 CVE-2026-111497 可通过 WordPress XML-RPC pingback 路径在特定环境中实现未授权远程代码执行。

推荐理由

文章区分了漏洞本身与 WordPress 的利用路径,并用隔离环境复现实验说明服务器配置差异对攻击结果的影响。

2026年10月22日,Google 发布了 CVE-2026-111497,这是 Brotli 中的一个严重漏洞,而就在前一天,Brotli 项目发布了修复版本。该漏洞以多个非官方名称流传,包括 HTTP2Shell、Node2Shell 和 Brotli2Shell。尽管名称中提到了 HTTP/2,但该缺陷并不涉及 HTTP/2 协议。它的 CVSS v4.0 评分为 9.2(满分 10 分)。特制的 Brotli 数据流可能会破坏内存。如果攻击者能让面临风险的联网进程对其解码,该缺陷可能导致未经身份验证的远程代码执行。

这不是 WordPress 核心、插件或主题中的漏洞。不过,WordPress 可以请求服务器从其他网站获取数据,而服务器在处理响应时可能会使用 Brotli。公开的概念验证利用了 WordPress 未经身份验证的 XML-RPC pingback 功能来访问存在漏洞的库。

Wordfence 威胁情报团队在隔离的 WordPress 实验环境中复现了远程代码执行,并测试了公开漏洞利用在高度相关的服务器配置之间的可迁移性。本文解释了我们确认的内容、该测试能够和不能证明的事项,以及 WordPress 站点所有者应采取的措施。

TL;DR

  • 询问你的托管服务商,你网站所用的 Brotli 库是否已针对 CVE-2026-111497 完成修补。更新 WordPress、插件或主题并不会更新这一服务器级库。
  • 我们的实验室测试确认了可通过 WordPress 实施未经身份验证的远程代码执行。公开的概念验证在其设计所针对的 PHP 8.3.36 服务器环境中多次执行了代码。修补 Brotli 后,该验证不再执行代码。
  • 当前漏洞利用取决于服务器配置。同一有效载荷未能攻破 PHP 8.3.35,尽管它在一个存在漏洞的测试环境中导致 PHP 崩溃。这表明公开的有效载荷并非适用于所有环境。攻击者仍可能将其调整为针对常用服务器配置,但我们尚未证明能够远程适配任意 WordPress 服务器。
  • CISA 将 CVE-2026-111497 列为已知遭到利用的漏洞,但其公开条目未说明受影响的应用、攻击途径或后果。传感器网络仍在记录利用尝试,但我们截至11月2日审查的公开报告并未记录生产环境中的成功入侵,也未记录通过 WordPress 实施的入侵。

什么是 Brotli,它与 WordPress 有什么关系?

Brotli 是一种压缩格式和软件库,用于减小网页内容的体积并加快传输速度。它通常由操作系统、托管平台、容器镜像、Web 服务器或软件栈中的其他组件提供。站点所有者可能一直在使用它,却从未在 WordPress 仪表板中看到“Brotli”。

Brotli 可同时用于传入和传出的网络流量。在所展示的 WordPress 攻击中,危险数据并非直接通过发送到站点的请求传输。相反,WordPress 会向攻击者控制的服务器发出外部请求,而存在漏洞的 Brotli 库会处理压缩后的响应。

由于 Brotli 与 WordPress 分开安装和更新,更新 WordPress 不会替换受影响的库。托管服务提供商或服务器管理员必须安装相关的操作系统或平台更新,然后重启或重新部署任何已加载旧版本库的服务。

该漏洞有何影响

CVE-2026-111497 是 Brotli 解码器中的越界写入漏洞。通俗来说,恶意压缩文件可以让解码器将数据写入为其预留的内存区域之外。结果可能是崩溃、内存信息泄露或远程代码执行。

Google 的 CVE 记录列出了所有平台上受影响的上游版本。不过,仅在服务器上发现 Brotli 并不能证明该站点可被远程利用;攻击者控制的压缩数据必须通过网站或其他暴露的服务到达受影响的解码器。

Brotli 仍在维护的上游分支首批修复版本如下:

受影响的上游版本 首个修复的上游版本
1.0.3 至 1.0.9 1.0.10
1.1.0 1.1.1
1.2.0 1.2.1

Linux 和托管服务供应商通常会在不更改上游主版本号的情况下回移安全修复。例如,Debian 13 在 libbrotli1 1.1.0-2+deb13u1 中修复了该问题,尽管该软件包的版本仍以 1.1.0 开头。请检查完整的软件包修订版本和供应商的安全公告,而不要只比较前三个版本号。

2026 年 10 月 27 日,CISA 将 CVE-2026-111497 加入了“已知被利用漏洞”目录。其公开条目未说明受影响的应用、受害者、攻击途径或结果,也未说明是否涉及 WordPress。

已演示的 WordPress 攻击如何运作

公开的概念验证利用 WordPress 的一项正常功能,让站点获取恶意压缩响应:

  1. 未经身份验证的请求调用 pingback.ping 方法,访问 xmlrpc.php,并提供攻击者控制的源 URL。
  2. WordPress 获取该 URL,以确认其链接到站点上的真实文章。
  3. 攻击者的服务器返回一个被标记为 Brotli 压缩的特制响应。
  4. 存在漏洞的 Brotli 解码器会破坏内存。如果该漏洞利用与服务器的软件和内存布局相符,攻击者便可以以网站 PHP 进程的权限执行代码。

已演示的攻击途径不仅需要一个存在漏洞的库。XML-RPC 端点必须可访问,pingback.ping 必须已注册,目标文章必须接受 ping,服务器必须被允许发出出站请求,并且 HTTP 客户端必须使用存在漏洞的 Brotli 解码器。按照目前的公开信息,该漏洞利用还必须与目标的 PHP 构建版本、运行时环境和内存布局高度匹配。

xmlrpc.php 是此概念验证所用的触发方式,但不是 Brotli 漏洞本身的必要条件。其他软件也可能使同一个解码器接触攻击者控制的压缩数据。在我们对标准版 WordPress Core 的限定审查中,pingback.ping 是明确的未经身份验证的攻击途径,可让攻击者提供公开 URL。我们检查的其他候选 URL 获取功能均要求身份验证、额外权限或事先控制内容。插件和主题可能增加其他攻击途径。

Wordfence 测试的发现

我们在隔离容器中使用公开概念验证的精确目标环境复现了攻击:Debian 13.7 上的 WordPress 7.1.3,配备 Apache 2.4.69、以 mod_php 方式运行的 PHP 8.3.36,以及 Debian 存在漏洞的 libbrotli1 1.1.0-2+b7 软件包。标准的操作系统内存随机化功能已启用。

未经身份验证的请求在存在漏洞的实验环境中执行了代码。我们仅将 Brotli 更新为 Debian 的修复版本包后,同样的请求序列不再执行代码,服务器也保持正常运行。

同样的有效载荷在 PHP 8.3.35 上未能执行。在一个存在漏洞的 WordPress 环境中,它反而导致 PHP 工作进程崩溃。这表明,仅凭 PHP 版本无法预测结果:具体构建版本和运行环境的差异,可能决定有效载荷是执行代码、导致崩溃,还是失败。

攻击者通常可以远程识别 WordPress、PHP、Web 服务器、XML-RPC 的可用性以及部分出站请求行为。这些线索可能帮助他们选择针对常见服务器镜像 prepared 的有效载荷。然而,普通 Web 请求通常不会泄露将此类有效载荷适配到任意服务器所需的确切二进制构建版本或内存布局,而且我们并未证明具备这种能力。

我们目前的评估是,该公开漏洞利用代码并非通用请求。针对特定目标的利用,或在共享相同服务器镜像的站点上复用,仍有可能。这可能会降低无差别攻击的可靠性,但已确认的代码执行、观察到的攻击尝试以及 CISA 的目录条目,使修补工作变得十分紧迫。

目前已知的在野利用情况

多家安全公司观察到恶意攻击活动。ELLIO 捕获了一次针对官方 Node.js 构建版本的利用尝试,但在与目标漏洞版本匹配的易受攻击目标上进行 50 次重放时,捕获的有效载荷均未生成 shell。Previdian 持续观察到利用尝试,包括 11 月 2 日的活动,并表示其遥测数据无法显示目标是否存在漏洞,也无法确定这些尝试是否成功。Check Point 报告了自动化扫描和可疑有效载荷,但未确认出现入侵。

Imperva 和 ELLIO 分别在受控实验环境中演示了针对存在漏洞的 Node.js 构建版本的代码执行。这些结果证实该漏洞不仅能在 WordPress 中被利用,但并不能证明生产环境已遭入侵。截至 2026 年 11 月 2 日,我们未找到可独立审查的公开报告,其中记录了成功入侵生产环境,或通过 WordPress XML-RPC 途径成功入侵。CISA 的公开目录条目未披露受影响的应用、攻击途径或支持该条目的事件细节,因此没有公开案例并不意味着未发生利用。

如何检查你的站点可能受到影响

工具 > 站点健康中显示的 WordPress 版本无法回答这一问题。Brotli 通常位于 WordPress 之外,可能由主机提供商、操作系统、容器镜像、PHP 技术栈或其他捆绑组件提供。

托管主机的客户应向服务提供商询问:

为我的 WordPress 站点提供服务的进程是否使用了针对 CVE-2026-111497 修补过的 Brotli 解码器,并且更新后是否重启或重新部署了所有受影响的服务?

技术管理员可以使用 XML-RPC 的未经身份验证的 system.listMethods 方法,检查 pingback.ping 是否已注册。该检查是安全的,但只能证明该方法可用,不能证明站点可被利用。帖子还必须接受 pingback,并且服务器必须满足上述其他条件。WordPress 的 设置 > 讨论中的 pingback 选项会更改未来帖子的默认设置;现有帖子可能仍保留此前的设置。

给 Wordfence 用户的说明

Wordfence 的 Disable XML-RPC authentication 选项不会禁用未经身份验证的 pingback。WordPress 文档指出,名称相似的 xmlrpc_enabled 过滤器同样只影响需要身份验证的方法;它不会禁用 pingback.ping。

更改 XML-RPC 或 pingback 行为可能会干扰合法的集成,而且只会移除已证明存在的 WordPress 攻击路径。它无法修复存在漏洞的 Brotli 库。安装供应商提供的安全更新仍然至关重要。

WordPress 站点所有者应采取的措施

  • 托管主机客户: 要求托管服务提供商确认网站使用的每个 Brotli 副本都包含 CVE-2026-111497 修复,并且受影响的服务已重启或重新部署。
  • 自行管理服务器的管理员: 安装操作系统或平台供应商提供的安全更新。比较完整的软件包修订版本,然后重启 Apache、PHP-FPM 或任何其他加载了旧版库的进程。
  • 容器用户: 使用更新后的基础镜像重新构建并重新部署。重启现有容器不会替换其中的漏洞文件。
  • CloudLinux 及类似平台用户: 仔细查看供应商公告。服务器可能包含彼此独立的系统版、Web 服务器版或捆绑版 PHP 的 Brotli 副本,更新其中一个副本可能不会更新其他副本。
  • 代理商和托管服务提供商: 检查每个生产、预生产和遗留环境。不要以为一次软件包检查就能覆盖每个 PHP 进程池、容器或服务器镜像。
  • 保留日志和备份: 由于公开的漏洞利用细节和已观察到的攻击尝试均已公开,且 CISA 将该漏洞列为已知遭到利用,请保留从公开披露前到各环境完成修补并重启期间现有的 Web 服务器、PHP、进程、防火墙和出站网络日志。
  • 调查异常活动: 如果修补被延迟,应查找意外的 XML-RPC pingback 请求、异常出站连接,以及 PHP 或 Web 服务器崩溃和重启。这些迹象本身不能证明遭到利用,而没有这些迹象也不能证明未发生利用。

如果调查发现系统遭入侵的证据,请先隔离受影响的系统,然后再轮换数据库凭据、API 密钥、WordPress salts 以及网站可访问的其他机密。例行轮换机密不能替代修补,并且应在进行适当的事件响应评估后执行。

结论

CVE-2026-111497 是 Brotli 中的严重漏洞,而非 WordPress 中的漏洞,但 WordPress 可能为攻击者提供一条通往存在漏洞的解码器的路径。 我们的实验室测试在完全相同服务器环境中确认了未经身份验证的代码执行。目前公开的漏洞利用载荷并非适用于所有环境,但匹配的载荷可能会在标准化服务器镜像中重复使用,而且攻击者已经在现实环境中测试该漏洞。目前尚未公开证实通过 WordPress 成功入侵生产环境,但现有证据足以表明应紧急进行更新。

不要把对配置依赖的顾虑当作推迟更新的理由。安装相关供应商提供的已修复软件包或镜像,重启或重新部署每个受影响的服务,并验证网站使用的完整软件包修订版本。

如果 Wordfence Care 和 Wordfence Response 客户认为其网站可能已遭入侵,可以联系我们的事件响应团队。Wordfence Response 提供全天候 24/7/365 服务,响应时间为一小时。

如果您认识管理 WordPress 网站的人,请分享这篇文章,并请他们确认每个网站使用的 Brotli 库都已修补。

来源

  • Google CNA 针对 CVE-2026-111497 的记录
  • Brotli 1.2.1 安全版本
  • 上游 Brotli 安全修复
  • CISA 已知被利用漏洞目录条目
  • Debian 针对 CVE-2026-111497 的安全跟踪器
  • Ubuntu 安全公告 USN-8956-1
  • Amazon Linux 安全公告 ALAS2023-2026-3334
  • CloudLinux Brotli 安全公告
  • WordPress pingback.ping 实现
  • WordPress xmlrpc_enabled 文档
  • 关于禁用 trackbacks 和 pingbacks 的 WordPress 指南
  • 针对 CVE-2026-111497 的公开 WordPress 概念验证
  • Tenable 对 HTTP2Shell、Brotli2Shell 和 Node2Shell 这些名称的概述
  • ELLIO 对一次已捕获的漏洞利用尝试及受控 Node.js 漏洞利用的分析
  • Previdian 针对 CVE-2026-111497 尝试的遥测数据
  • Check Point 关于 HTTP2Shell 的研究与观察到的活动
  • Imperva 关于受控 Node2Shell 漏洞利用的研究

文章 HTTP2Shell:关键 Brotli 漏洞对 WordPress 网站意味着什么 首次发布于 Wordfence。

来源:Wordfence 官方博客 · https://www.wordfence.com/blog/2026/11/http2shell-wordpress-brotli/

部分链接为推广/关联链接。