HTTP消息可以在头部和尾部部分包含命名字段。CERT/CC专家解释说,在HTTP/2中,头部和尾部字段都被序列化为字段块,以便将它们以多个片段的形式传输到目标实现。许多HTTP/2实现并没有正确地限制或清理在单个流中发送的CONTINUATION帧的数量。攻击者可以通过发送一系列CONTINUATION帧来利用这个问题。这些帧可能不会被附加到内存中的头部列表,但仍会被服务器处理和解码,可能导致内存耗尽(OOM)崩溃。
这种攻击技术被称为HTTP/2 CONTINUATION洪水攻击,研究员Bartek Nowotarski于2024年1月25日向CERT协调中心(CERT/CC)报告了这个问题。
CERT/CC发布的公告中写道:“HTTP/2 CONTINUATION帧用于继续字段块片段的序列。它们被用来将头部块分割成多个帧。头部块片段的另外两种类型是HEADERS或PUSH_PROMISE。当服务器无法通过HEADERS或PUSH_PROMISE帧传输头部块片段时,可以使用CONTINUATION帧来继续。当服务器接收到一个END_HEADERS标志时,头部块被视为完成。这表示没有更多的CONTINUATION、HEADERS或PUSH_PROMISE帧。在多个实现中发现了一个漏洞,该漏洞没有限制在单个流中可以发送的CONTINUATION帧的数量。”
Nowotarski解释说,CONTINUATION洪水攻击是众多HTTP/2协议实现中的一类漏洞。与Rapid Reset相比,CONTINUATION洪水攻击对单台机器的影响更为严重。研究人员指出,它有可能破坏服务器的可用性,导致服务器崩溃和性能下降。
以下是影响不同实现的漏洞:
CVE-2024-27983 - 攻击者可以通过发送少量包含几个HTTP/2帧的HTTP/2帧数据包,使Node.js HTTP/2服务器不可用。当向服务器发送包含HTTP/2 CONTINUATION帧的头部,并且客户端突然关闭TCP连接,触发Http2Session析构函数,而此时头部帧仍在处理中(并存储在内存中)时,nghttp2内存中可能遗留一些数据,从而导致竞态条件。
CVE-2024-27919 - Envoy的oghttp编解码器在头部映射限制超出时不会重置请求。这允许攻击者发送一系列未设置END_HEADERS位的CONTINUATION帧,导致无限制的内存消耗。
CVE-2024-2758 - Tempesta FW的速率限制默认并未启用。它们要么设置得过大,无法捕获空的CONTINUATION帧攻击,要么设置得过小,无法适当处理正常的HTTP请求。
CVE-2024-2653 - amphp/http会在一个无边界的缓冲区中收集HTTP/2 CONTINUATION帧,并且在接收到END_HEADERS标志之前不会检查头部大小限制,从而导致OOM崩溃。如果与未修复的amphp/http版本一起使用,amphp/http-client和amphp/http-server将间接受到影响。支持HTTP/2的早期版本的amphp/http-client(从v4.0.0-rc10到4.0.0)也直接受到影响。
CVE-2023-45288 - Go语言的net/http和net/http2包未限制HTTP/2请求中读取的CONTINUATION帧数量,这使得攻击者能够为单个请求提供任意大的头部集合,这些头部将被读取、解码并随后丢弃,可能导致过度的CPU消耗。
CVE-2024-28182 - 使用nghttp2库的实现将继续接收CONTINUATION帧,并且不会在重置流之前回调到应用程序以允许查看此信息,从而导致DoS(拒绝服务)攻击。
CVE-2024-27316 - 攻击者可以向Apache Httpd实现发送一系列未设置END_HEADERS标志的HTTP/2 CONTINUATION帧,Apache Httpd将不会正确提前终止请求。
CVE-2024-31309 - HTTP/2 CONTINUATION DoS攻击可能导致Apache Traffic Server在服务器上消耗更多资源。受影响的版本范围是从8.0.0到8.1.9,以及从9.0.0到9.2.3。
CVE-2024-30255 - 在Envoy 1.29.2或更早版本中,HTTP/2协议栈因连续帧泛滥而容易受到CPU耗尽的影响。Envoy的HTTP/2编解码器允许客户端在超过Envoy的头部映射限制后发送无限数量的CONTINUATION帧。这使得攻击者能够发送一系列未设置END_HEADERS位的CONTINUATION帧,导致CPU利用率上升,大约每300Mbit/s的流量会消耗一个核心。
CERT/CC强调,由于HTTP请求没有正确完成,分析入站流量以检测利用尝试可能比较困难。
“可能需要分析原始的HTTP流量,以确定利用此漏洞的攻击。”报告总结道。
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...