CVE-2023-44487high
HTTP/2 Rapid Reset 拒绝服务
HTTP/2 的流重置特性可被用来以极小代价发起大规模拒绝服务,影响多数主流 HTTP/2 实现。
# CVE-2023-44487 · HTTP/2 Rapid Reset 拒绝服务
## 基本信息
- 编号:CVE-2023-44487
- 影响范围:多数主流 HTTP/2 服务端与代理实现均有对应公告
- 严重度:high
## 问题成因
HTTP/2 允许客户端不断新建流并立刻用 RST_STREAM 取消。服务端仍要为新流分配资源,而取消请求的计算量极小,攻击者用很小的带宽就能让服务端忙于建流与拆流,最终耗尽资源。
## 与普通 flood 的区别
- 不需要大带宽,攻击成本低
- 流量看起来是正常 HTTP/2 帧,缺少明显特征
- 受影响的是协议实现层,换语言换框架不一定能躲开
## 修复与缓解
1. 升级所使用的 HTTP/2 实现到厂商修复版本
2. 限制单个连接的最大并发流数量与新建流速率
3. 对异常高的取消率做熔断,直接断开连接
4. 前置 DDoS 清洗设备,按连接维度限速
## 常见坑
- 只按 QPS 限流,没按建流速率与取消率限流
- 以为关掉 HTTP/2 就一劳永逸——那会影响性能,应先看版本是否已修
- 没有监控连接级指标,出问题时只有 CPU 高一个信号
## 怎么验证
在压测环境模拟高频建流与取消,观察服务端 CPU 与连接数曲线是否异常抬升。