RHSB-2023-003 HTTP/2 快速重置 (CVE-2023-44487 和 CVE-2023-39325)
已更新
此信息是否有帮助?
执行摘要
红帽已了解到影响几个 HTTP/2 服务器实现的分布式拒绝服务 (DDoS) 漏洞,该漏洞已被分配为 CVE-2023-44487 和 CVE-2023-39325,称为 "Rapid Reset Attack(快速重置攻击)"。
这个安全问题的 CVSSv3 分数被定为 7.5,其安全影响级别被定为Import(重要)。
美国网络安全和基础架构安全局 (CISA) 已将此漏洞声明为一个可以被利用的活跃安全漏洞。另外,已有报告,自 2023 年 8 月以来这个漏洞会已被利用来对系统进行攻击。
红帽正在确定会受影响的产品,当前已确定的受影响的产品列表包括在以下 CVE 页面中:CVE-2023-44487 和 CVE-2023-39325。
此外,在 Red Hat Enterprise Linux (包括 RHEL CoreOS)上支持的任何红帽产品都可能潜在会受到影响。这包括:
基于 RHEL 或 UBI 容器镜像的产品容器。这些镜像会定期更新,包括是否有对此缺陷修复的容器健康状况信息,这个信息可以在 Red Hat Container Catalog 的 Container Health Index 部分中看到。此外,当基础镜像被更新时,任何客户容器都应重新构建。
从 RHEL 频道拉取软件包的产品,包括 Red Hat OpenShift Container Platform、Red Hat OpenStack Platform、Red Hat Virtualization 等产品。请确保受影响的 RHEL 软件包在这些产品环境中是最新的。
技术概述
HTTP/2 协议使用一系列多路复用流来在客户端和服务器之间建立通信连接,从而提高通信的吞吐量。
CVE-2023-44487 和 CVE-2023-39325 的攻击原理是,攻击者创建大量流,然后相互取消每个流。此问题可导致服务器出现资源不足的情况,最终使它无法处理任何正当的请求。
缓解方案
我们强烈建议在修复可用时,用户应立即更新相关的软件。
这个安全漏洞有几个缓解方法。
如果情况允许,用户可以完全禁用 http2 端点来避免这个漏洞,直到相关的修复可用为止。
可以在网络端点使用基于 IP 的阻塞或洪水保护工具,以过滤传入的流量。
另外,以下是特定于具体软件包的缓解方案。
nginx: https://www.nginx.com/blog/http-2-rapid-reset-attack-impacting-f5-nginx-products/
netty: https://github.com/netty/netty/security/advisories/GHSA-xpw8-rcwv-8f8p
haproxy: https://www.haproxy.com/blog/haproxy-is-not-affected-by-the-http-2-rapid-reset-attack-cve-2023-44487
nghttp2: https://github.com/nghttp2/nghttp2/security/advisories/GHSA-vx74-f528-fxqg
golang:将每个 HTTP/2 连接的默认流并发限制为 250 个流(请求)。此值可以在 golang.org/x/net/http2 包中进行调整,使用 Server.MaxConcurrentStreams 设置和 ConfigureServer 功能(在 golang.org/x/net/http2 中可用)。
技术细节
HTTP/2 协议与 HTTP/1.1 不同,它会使用一系列的数据流来在客户端和服务器之间建立通信连接。因此,客户端可以在一个连接中发送多个请求,而在服务器端会以并行方式对它们进行处理。HTTP/2 中的另一个功能是,客户端可以通过向服务器发送一个 RST_STREAM 帧来取消之前发送的流。客户端可能会假定,在服务器接收到 RST_STREAM 帧后会立即取消流。
此漏洞利用了这些功能。它在同一连接中创建大量流,并在接收到对初始请求的响应前使用 RST_STREAM 帧来取消它们。这导致服务器分配大量的资源来解压并处理发送的数据帧,最终耗尽系统的资源。通过利用此行为,攻击者避免了服务器中配置的最大连接数量的限制,对目标系统造成显著的性能损失。
出于性能和资源消耗的原因,NGINX 将并发流的数量限制为默认的 128。如需更多信息,请参阅 http2_max_concurrent_streams 。另外,为了最佳平衡网络和服务器的性能,NGINX 使用 HTTP keepalive 默认允许客户端为最大 1000 个请求保留 HTTP 连接。如需更多信息,请参阅 keepalive_requests 。
受影响产品的更新
红帽正在确定会受影响的产品,当前已确定的受影响的产品列表包括在以下 CVE 页面中:CVE-2023-44487 和 CVE-2023-39325。
我们强烈建议,所有运行受影响版本的红帽产品的用户,在相关勘误可用后尽快进行更新。
诊断
要确定一个特定服务器中的 HTTP 的版本,可以使用 curl 命令。请运行以下命令。例如:要测试 https://redhat.com
$ curl -sl https://redhat.com -o/dev/null -w '%{http_version}\n'
1.1
例如您要测试使用 HTTPS 的服务器 172.16.8.3,端口为 20346:
$ curl -sl https://172.16.8.3:20346 -o/dev/null -w '%{http_version}\n'
2
返回 1.1 或 1 代表系统不会受到这个 CVE 的影响。返回版本 2 的系统可能会受到此漏洞的影响。
参考信息
https://www.cisa.gov/news-events/alerts/2023/10/10/http2-rapid-reset-vulnerability-cve-2023-44487
https://www.openwall.com/lists/oss-security/2023/10/10/6
Comments