新的“MadeYouReset”方法利用 HTTP/2 进行隐秘的 DoS 攻击

发布于:2025-08-18 ⋅ 阅读:(19) ⋅ 点赞:(0)

安全研究人员发现了一种针对 HTTP/2 实现的新型拒绝服务 (DoS) 技术,称为“MadeYouReset”(CVE-2025-8671)。

此次攻击会导致服务器重置自身连接并过度消耗资源,有可能通过分布式拒绝服务 (DDoS) 活动严重破坏未修补的系统。

该漏洞由特拉维夫大学的 Gal Bar Nahum、Anat Bremler-Barr 教授和 Yaniv Harel 博士与 Imperva 的研究人员合作发现。该漏洞由CERT 协调中心披露,其机制揭示了 2023 年“快速重置”漏洞 (CVE-2023-44487) 的微妙但危险的演变。快速重置依赖于客户端明确发送 RST_STREAM 帧,而 MadeYouReset 则利用格式错误但符合协议的帧来诱使服务器自行发出重置指令。

欺骗性的合规漏洞

该漏洞的核心在于 HTTP/2 规范与实际服务器行为不匹配。HTTP/2 允许客户端和服务器随时取消流。实际上,许多实现即使在流重置后仍会继续处理请求,从而导致资源泄漏。MadeYouReset 利用了这一点,通过发送巧妙违反协议的特制帧,促使服务器重置流,而不会释放后端处理资源。

此次攻击使用的关键技术包括:

  • Window-Overflow:发送超出允许的流控制窗口大小的 WINDOW_UPDATE 帧,从而触发重置。
  • 零增量更新:使用增量为 0 的 WINDOW_UPDATE 帧,服务器以 PROTOCOL_ERROR 和 RST_STREAM 进行响应。
  • 半关闭流滥用:在流半关闭后发送额外的 DATA 或 HEADERS 帧,强制服务器端重置。
  • 优先级长度不匹配:发送长度不正确的优先级帧,导致错误状态和重置。

MadeYouReset 攻击概述
 

这些行为会导致流看似对协议关闭,但在服务器后端仍然处于活动状态,从而使攻击者能够有效绕过 SETTINGS_MAX_CONCURRENT_STREAMS 限制。随着时间的推移,这会导致内存或 CPU 耗尽,最终导致服务降级或中断。

影响范围及缓解措施

该漏洞影响几种广泛使用的 HTTP/2 实现,包括 Apache Tomcat(单独跟踪为 CVE-2025-48989)、Netty、Jetty、IBM WebSphere、BIG-IP(F5)、gRPC、Mozilla、Eclipse Foundation、Fastly、Varnish、SUSE Linux、Zephyr Project 和 Wind River。

许多供应商已经发布或正在准备补丁。CERT/CC建议审查供应商的建议并立即应用相关更新。

由于在 2023 年 Rapid Reset 事件期间部署了现有缓解措施,Cloudflare 等一些主要基础设施提供商未受此次攻击影响。Cloudflare指出,由于已部署了主动速率限制和行为检测机制,其系统不易受到攻击。其开源 Pingora 框架依赖于基于 Rust 的 H2 库,在旧版本中可能会受到影响。建议用户更新至 H2 v0.4.11 或更高版本。

Imperva 强调,MadeYouReset 技术更难检测,因为它不依赖于明显的协议违规。相反,它发送格式良好的帧,触发符合规范的服务器端错误处理,使得攻击流量几乎与合法的 HTTP/2 活动难以区分。现有的客户端发送 RST_STREAM 帧的速率限制在这里无效,因为重置源自服务器本身,是为了响应协议边缘情况。

运行 HTTP/2 服务器的组织应应用软件供应商和 HTTP/2 库维护者提供的所有可用更新,在数据包解析期间尽早删除格式错误或不兼容的帧,并确保服务器端逻辑独立于协议级流状态处理后端请求。


网站公告

今日签到

点亮在社区的每一天
去签到