概述
在许多HTTP/2实现中发现了一个漏洞,允许通过HTTP/2控制帧进行拒绝服务(DoS)攻击。该漏洞被通俗地称为"MadeYouReset",跟踪为CVE-2025-8671。一些供应商已为其产品分配了特定的CVE来描述该漏洞,例如CVE-2025-48989用于识别受该漏洞影响的Apache Tomcat产品。MadeYouReset利用了HTTP/2规范与许多实际Web服务器内部架构之间由流重置引起的不匹配,导致资源耗尽,威胁行为者可以利用此漏洞执行分布式拒绝服务攻击(DDoS)。该漏洞类似于CVE-2023-44487(俗称"Rapid Reset")。多个供应商已发布补丁或对此漏洞作出响应,读者应查看供应商在本漏洞说明末尾提供的声明并酌情打补丁。
描述
由客户端触发的服务器发送的流重置在HTTP/2规范与某些HTTP/2实现的内部架构之间引起的不匹配可能导致服务器资源过度消耗,从而造成拒绝服务(DoS)。该漏洞被跟踪为CVE-2025-8671,俗称"MadeYouReset"。该漏洞类似于CVE-2023-44487(俗称"Rapid Reset"),后者滥用了客户端发送的流重置。
HTTP/2引入了流取消功能——客户端和服务器都能够随时立即关闭流。然而,在流被取消后,许多实现会继续处理请求,计算响应,但不将其发送回客户端。这在HTTP/2视角下的活动流数量与后端服务器实际处理的活跃HTTP请求之间造成了不匹配。
通过打开流然后使用畸形帧或流控制错误快速触发服务器重置它们,攻击者可以利用HTTP/2流计数与服务器活跃HTTP请求之间创建的差异。被服务器重置的流被视为已关闭,即使后端处理仍在继续。这允许客户端使服务器在单个连接上处理无限数量的并发HTTP/2请求。
该缺陷主要源于许多HTTP/2协议实现将重置流等同于关闭流;然而,在实践中,服务器仍会处理它们。攻击者可以利用这一点持续发送重置请求,协议将这些重置流视为已关闭,但服务器仍会处理它们,从而导致DoS。
HTTP/2确实支持一个名为SETTINGS_MAX_CONCURRENT_STREAMS的参数,该参数定义了每个会话中一组当前活跃的流。理论上,此设置将防止攻击者使目标服务器过载,因为他们将达到其特定恶意会话的并发流计数器上限。实际上,当攻击者重置流时,协议认为它不再活跃,并且不再在此计数器中对其进行计数。
影响
此漏洞的主要影响是其可能用于DDoS攻击。利用该漏洞的攻击者很可能能够通过使服务器处理极高数量的并发请求来强制目标离线或严重限制客户端的连接可能性。根据其HTTP/2的实现,受害者将不得不应对高CPU过载或内存耗尽问题。
解决方案
各个供应商已提供补丁和声明以解决该漏洞。请查看他们下面的声明。CERT/CC建议在其产品中使用HTTP/2的供应商审查其实现并限制从服务器发送的RST_STREAM的数量/速率。此外,请查看报告者提供的补充材料,其中包括额外的缓解措施和其他潜在解决方案:https://galbarnahum.com/made-you-reset
致谢
感谢报告者特拉维夫大学的Gal Bar Nahum、Anat Bremler-Barr和Yaniv Harel。本文档由Christopher Cullen编写。
供应商信息
受影响供应商
AMPHP
状态: 受影响
通知日期: 2025-05-28
更新日期: 2025-08-13
CVE-2025-8671: 受影响
Apache Tomcat
状态: 受影响
通知日期: 2025-05-28
更新日期: 2025-08-13
CVE-2025-48989: 受影响
CVE-2025-8671: 受影响
供应商声明: 严重性:重要
受影响版本:
- Apache Tomcat 11.0.0-M1 至 11.0.9
- Apache Tomcat 10.1.0-M1 至 10.1.43
- Apache Tomcat 9.0.0.M1 至 9.0.107
- Apache Tomcat 8.5.0 至 8.5.100(未知)
描述: Apache Tomcat中的不当资源关闭或释放漏洞。
此问题影响Apache Tomcat:从11.0.0-M1到11.0.9,从10.1.0-M1到10.1.43,以及从9.0.0.M1到9.0.107。较旧的EOL版本也可能受到影响。
建议用户升级到修复此问题的11.0.10、10.1.44或9.0.108版本之一。
致谢: Gal Bar Nahum,特拉维夫大学(发现者)
Fastly
状态: 受影响
通知日期: 2025-05-28
更新日期: 2025-08-15
CVE-2025-8671: 受影响
供应商声明: Fastly在Fastly内部H2O分支的25.17版本中实施了针对MadeYouReset(CVE-2025-8671)的修复。该修复于2025年6月2日部署并在Fastly全面实施。
其他受影响供应商
- Eclipse Foundation
- gRPC
- Mozilla
- Netty
- Red Hat
- SUSE Linux
- Varnish Software
- Wind River
- Zephyr Project
不受影响供应商
Akamai Technologies Inc.
状态: 不受影响
CVE-2025-8671: 不受影响
Apache HTTP Server Project
状态: 不受影响
CVE-2025-8671: 不受影响
Envoy
状态: 不受影响
CVE-2025-8671: 不受影响
供应商声明: 在测试此问题后,我们发现Envoy不易受攻击,因为我们为"rapid reset"添加的缓解措施也阻止了此较新漏洞被利用。由于我们对rapid reset的缓解措施是在Envoy的HTTPConnectionManager中实现的,它应该覆盖所有编解码器。
Go Programming Language
状态: 不受影响
CVE-2025-8671: 不受影响
供应商声明: 我不认为Go的net/http包受此攻击影响。net/http中对Rapid Reset攻击的缓解措施是限制将并发处理的请求数量,对超过该上限的请求进行排队,并在队列长度超过该上限过多时关闭连接。由于此缓解措施仅考虑并发执行的处理程序数量和等待处理程序的排队请求数量,它不依赖于用于重置流的机制。无论客户端发送显式重置还是诱导服务器发出重置,都无关紧要。
其他不受影响供应商
- HAProxy
- IETF HTTP Working Group
- lighttpd
- LiteSpeed Technologies
- 等多家厂商
状态未知供应商
- Cisco
- Amazon
- Microsoft
- 等多家厂商
参考链接
- https://github.com/galbarnahum/MadeYouReset
- https://galbarnahum.com/made-you-reset
- https://www.cve.org/CVERecord?id=CVE-2025-8671
- https://www.rfc-editor.org/rfc/rfc9113.html
其他信息
CVE ID: CVE-2025-8671
公开日期: 2025-08-13
首次发布: 2025-08-13
最后更新: 2025-09-10