HTTP/2是一种安全高效的下一代http传输协议,旨在通过引入用于高效数据传输的二进制帧、允许通过单个连接进行多个请求和响应的多路复用以及用于减少开销的标头压缩来提高Web性能。HTTP/2 CONTINUATION帧用于连续字段块片段的序列。
VSRC监测到HTTP/2协议被披露存在拒绝服务漏洞,该漏洞被称为“HTTP/2 CONTINUATION Flood”,可导致拒绝服务(DoS)攻击,在某些实现中可通过单个TCP连接使web服务器崩溃,目前该漏洞的技术细节已公开披露。
由于某些HTTP/2协议实现中没有适当限制或清理单个数据流中发送的 CONTINUATION 帧的数量,攻击者可通过不设置 END_HEADERS 标志位,向目标服务器发送 CONTINUATION 帧流,从而可能导致内存不足崩溃或CPU资源耗尽而导致服务器中断,造成拒绝服务。
已知HTTP/2 CONTINUATION Flood影响多个项目,不同的HTTP/2实现可能会有特定于该实现的独特漏洞及影响,不同HTTP/2实现相对应的部分CVE ID如下:
Envoy(CVE-2024-27919、CVE-2024-30255)
Tempesta FW ( CVE-2024-2758 )
amphp/http ( CVE-2024-2653 )
Golang(CVE-2023-45288)
nghttp2(CVE-2024-28182)
Apache HTTP Server ( CVE-2024-27316 )
Apache Traffic Server ( CVE-2024-31309 )
Node.js(CVE-2024-27983)
值得注意的是,在某些受影响实现中,仅通过单个TCP连接就可能导致web服务器崩溃,且恶意请求可能在HTTP访问日志中不可见,这可能使得检测和分析更加困难。
目前部分供应商/项目已修复了相应漏洞,受影响用户可参考相关公告并及时更新:
受影响项目/实例 |
CVE |
影响范围 |
修复版本 |
参考链接 |
Envoy |
CVE-2024-27919 |
Envoy 1.29.0 、1.29.1 |
升级到版本 1.29.2;或降级到1.28.1及之前版本 |
https://github.com/envoyproxy/envoy/security/advisories/GHSA-gghf-vfxp-799r |
CVE-2024-30255 |
1.29.3、1.28.2、1.27.4 和 1.26.8 之前版本 |
升级到1.29.3、1.28.2、1.27.4、1.26.8或更高版本 |
https://github.com/envoyproxy/envoy/security/advisories/GHSA-j654-3ccm-vfmm |
|
TempestaFW |
CVE-2024-2758 |
0.7.1之前版本 |
升级到0.7.1或更高版本 |
https://github.com/tempesta-tech/tempesta/security/advisories/GHSA-3xwj-5ch3-q9p4 |
amphp/http |
CVE-2024-2653 |
amphp/http<= 1.7.2、2.0.0-2.1.0; amphp/http-client 4.0.0-rc10 -4.0.0 |
升级到amphp/http 2.1.1、1.7.3; amphp/http-client>= 4.1.0-rc1 |
https://github.com/amphp/http/security/advisories/GHSA-qjfw-cvjf-f4fm https://github.com/amphp/http-client/security/advisories/GHSA-w8gf-g2vq-j2f4 |
Golang |
CVE-2023-45288 |
Go<1.22.2、Go <1.21.9 |
升级到Go 1.22.2 、 1.21.9 |
https://pkg.go.dev/vuln/GO-2024-2687 |
nghttp2 |
CVE-2024-28182 |
nghttp2 < 1.61.0 |
升级到nghttp2 版本1.61.0 |
https://github.com/nghttp2/nghttp2/security/advisories/GHSA-x6x3-gv8h-m57q |
Apache HTTP Server |
CVE-2024-27316 |
Apache HTTP Server <=2.4.58 |
升级到Apache HTTP Server 2.4.59 |
https://httpd.apache.org/security/vulnerabilities_24.html |
暂无。
l 定期更新系统补丁,减少系统漏洞,提升服务器的安全性。
l 加强系统和网络的访问控制,修改防火墙策略,关闭非必要的应用端口或服务,减少将危险服务(如SSH、RDP等)暴露到公网,减少攻击面。
l 使用企业级安全产品,提升企业的网络安全性能。
l 加强系统用户和权限管理,启用多因素认证机制和最小权限原则,用户和软件权限应保持在最低限度。
l 启用强密码策略并设置为定期修改。
https://nowotarski.info/http2-continuation-flood-technical-details/#a-quick-intro-to-http2
https://kb.cert.org/vuls/id/421644