在thehackernews的宣布中,安全研究员Bartek Nowotarski 于 1 月 25 日向卡内基梅隆大学打算机应急小组(CERT)折衷中央报告了这一问题。
该漏洞被称为\公众HTTP/2 CONTINUATION Flood\公众,它利用了配置不当的HTTP/2 实现,这些实现未能限定或净化要求数据流中的 CONTINUATION 帧。
CONTINUATION 帧是一种用于延续报头块片段序列的方法,许可报头块在多个帧等分割。当做事器收到一个特定的 END_HEADERS 标志,表明没有其他 CONTINUATION 或其他帧时,先前分割的报头块就被视为已完成。

如果 HTTP/2 实现不限定单个数据流中可发送的 CONTINUATION 帧的数量,就很随意马虎受到攻击。如果攻击者开始向未设置 END_HEADERS 标志的易受攻击做事器发送 HTTP 要求,该要求将许可攻击者向该做事器持续发送 CONTINUATION 帧流,终极导致做事器内存不敷而崩溃,并导致成功的谢绝做事 (DoS) 攻击。
CERT 还列举了该漏洞的另一个变种,即利用 HPACK Huffman 编码的 CONTINUATION 帧造成 CPU 资源耗尽,同样导致 DoS 攻击成功。
Nowotarski 指出,这意味着单台机器乃至单TCP连接都有可能毁坏做事器的可用性,造成从做事崩溃到性能低落等各种后果。
分布式谢绝做事(DDoS)攻击会创建大规模僵尸网络,通过纯粹的流量来压垮网络,而 DoS 攻击则不同,它可以通过向传输掌握协议(TCP)连接发送大量要求来耗尽目标做事器的资源,从而利用单个设备制造虚假网络流量。
与该新漏洞有关的几个常见漏洞和暴露 (CVE) 记录已经创建。这些记录包括:
CVE-2024-2653- amphp/http
CVE-2024-27316- Apache HTTP Server: HTTP/2 DoS by memory exhaustion on endless continuation frames
CVE-2024-24549- Apache Tomcat: HTTP/2 header handling DoS
CVE-2024-31309- Resource exhaustion in Apache Traffic Server
CVE-2024-27919- HTTP/2: memory exhaustion due to CONTINUATION frame flood
CVE-2024-30255) - HTTP/2: CPU exhaustion due to CONTINUATION frame flood
CVE-2023-45288- HTTP/2 CONTINUATION flood in net/http
CVE-2024-28182- Reading unbounded number of HTTP/2 CONTINUATION frames to cause excessive CPU usage
CVE-2024-27983- node::http2::Http2Session::~Http2Session leads to HTTP/2 server crash
CVE-2024-2758- Tempesta FW rate limits are not enabled by default
建议用户将受影响的软件升级到最新版本,以减轻潜在威胁。在没有修复程序的情形下,建议考虑暂时禁用做事器上的 HTTP/2。
根据 w3techs.com 的一项调查,目前约有 35.5% 的网站利用 HTTP/2。