新的 HTTP/2“MadeYouReset”漏洞可引发大规模 DoS 攻击

2025-08-15 07:22:15 0 492

研究人员披露了新型 HTTP/2 漏洞“MadeYouReset”(CVE-2025-8671),可绕过现有限制发起大规模拒绝服务(DoS)攻击,影响 Apache Tomcat、F5 BIG-IP、Netty 等产品。该技术利用服务器在处理有效请求后被迫发送 RST_STREAM 帧的特性,实现资源耗尽甚至内存崩溃。与此前的 Rapid Reset 不同,攻击者无需主动发送 RST_STREAM,即可规避缓解措施。CERT/CC 警告其源于协议与实现差异,亟需加强防护。



已发现多种 HTTP/2 实现容易受到一种名为 MadeYouReset 的新攻击技术的影响,该技术可被利用来发起强大的拒绝服务 (DoS) 攻击。

研究人员 Gal Bar Nahum、Anat Bremler-Barr 和 Yaniv Harel 表示:“MadeYouReset 绕过了服务器通常施加的限制,即客户端每个 TCP 连接最多可同时发送 100 个 HTTP/2 请求。此限制旨在通过限制客户端可以同时发送的请求数量来缓解 DoS 攻击。”

“利用 MadeYouReset,攻击者可以发送数千个请求,为合法用户创建拒绝服务条件,并且在某些供应商实现中,升级为内存不足崩溃。”

该漏洞已被分配通用 CVE 标识符 CVE-2025-8671,但该问题影响多种产品,包括 Apache Tomcat(CVE-2025-48989)、F5 BIG-IP(CVE-2025-54500)和 Netty(CVE-2025-55163)。

MadeYouReset 是继快速重置 (CVE-2023-44487) 和 HTTP/2 CONTINUATION Flood 之后 HTTP/2 中的最新漏洞,可能被用作武器来发动大规模 DoS 攻击。

网络安全
就像其他两种攻击分别利用 HTTP/2 协议中的 RST_STREAM 帧和 CONTINUATION 帧来发动攻击一样,MadeYouReset 建立在 Rapid Reset 及其缓解措施的基础上,这限制了客户端可以使用 RST_STREAM 取消的流的数量。

具体来说,它利用了 RST_STREAM 帧既可用于客户端发起的取消,也可用于发送流错误信号这一特性。具体实现方式是发送精心设计的帧,这些帧会以意想不到的方式触发协议违规,从而促使服务器通过发出 RST_STREAM 来重置流。

Bar Nahum 解释说:“为了使 MadeYouReset 正常工作,流必须以服务器开始处理的有效请求开始,然后触发流错误,以便服务器发出 RST_STREAM,而后端继续计算响应。”

“通过制作某些无效的控制帧或在恰当的时刻违反协议排序,我们可以让服务器为已经承载有效请求的流发送 RST_STREAM。”

使服务器发送 RST_STREAM 帧的六个原语包括 -

WINDOW_UPDATE 帧,增量为 0
PRIORITY 帧的长度不是 5(这是唯一有效的长度)
PRIORITY 帧使流依赖于自身
WINDOW_UPDATE 帧,其增量使窗口超过 2^31 − 1(这是允许的最大窗口大小)
客户端关闭流后发送的 HEADERS 帧(通过 END_STREAM 标志)
客户端关闭流后发送的 DATA 帧(通过 END_STREAM 标志)
这次攻击之所以引人注目,主要是因为它消除了攻击者发送 RST_STREAM 帧的需要,从而完全绕过了快速重置缓解措施,并且还达到了与后者相同的影响。

CERT 协调中心 (CERT/CC) 在一份公告中表示,MadeYouReset 利用了 HTTP/2 规范与许多现实世界 Web 服务器的内部架构之间的流重置造成的不匹配,从而导致资源耗尽——攻击者可以利用这一点来引发 DoS 攻击。

身份安全风险评估
Imperva 表示:“服务器触发的快速重置漏洞的发现凸显了现代协议滥用日益复杂的现状。由于 HTTP/2 仍然是 Web 基础设施的基础,因此保护其免受像 MadeYouReset 这样的隐蔽且符合规范的攻击比以往任何时候都更加重要。”

HTTP/1.1 必须消亡#
MadeYouReset 的披露正值应用安全公司 PortSwigger 披露新型 HTTP/1.1 异步攻击(又称 HTTP 请求走私)之际,其中包括一种名为 0.CL 的 CL.0 变种,该漏洞使数百万网站面临恶意接管的风险。Akamai(CVE-2025-32094)和 Cloudflare(CVE-2025-4366)已解决这些问题。

HTTP 请求走私是一种影响应用层协议的安全漏洞,它利用前端和后端服务器解析不符合 RFC 的 HTTP 请求的不一致,允许攻击者“走私”请求并规避安全措施。

PortSwigger 的 James Kettle 表示:“HTTP/1.1 有一个致命缺陷:攻击者可以制造极大的模糊性,让一个请求的结束位置和下一个请求的开始位置变得模糊。HTTP/2+ 消除了这种模糊性,使得异步攻击几乎不可能发生。然而,仅仅在边缘服务器上启用 HTTP/2 是不够的——它必须用于反向代理和源服务器之间的上游连接。”

关于作者

zsc081053篇文章103篇回复

评论0次

要评论?请先  登录  或  注册