CVE-2026-49975 - HTTP/2 Bomb 拒绝服务攻击

CVE-2026-49975 HTTP/2 Bomb 漏洞分析

前言

2026年,AI披露了一个严重的安全漏洞 CVE-2026-49975,被称为 “HTTP/2 Bomb”。该漏洞利用 HTTP/2 协议的两个已知特性——HPACK 压缩放大请求头以及HTTP/2 流控停滞保留服务器资源——实现了一种极其高效的拒绝服务(DoS)攻击。

更令人担忧的是,这个漏洞影响范围极广,几乎涵盖了所有主流 Web 中间件。


影响范围

该漏洞影响以下主流 Web 中间件:

中间件受影响版本状态
Nginx所有支持 HTTP/2 的版本已修复
Apache HTTP Server所有支持 HTTP/2 的版本已修复
IIS (Windows Server)所有版本暂无补丁
Envoy~1.37.2暂无补丁
CloudFlare Pingora所有版本暂无补丁
其他 HTTP/2 实现视具体情况待确认

攻击原理

1. HPACK 压缩放大

HTTP/2 为了减少带宽消耗,采用了 HPACK 压缩算法来压缩请求头。这个算法有一个关键特性:它允许客户端通过引用之前已经发送过的头部字段来减少重复传输

攻击者利用这一特性:

  1. 发送一个带有巨大请求头的请求(比如 1MB),服务器会存储并索引这些头
  2. 后续请求只需发送很短的引用,就可以让服务器”解压”出巨大的头
  3. 攻击者可以发送数百个这样的引用请求

理论上,这种放大比例可以达到 1:100 甚至更高

2. HTTP/2 流控停滞

HTTP/2 的流控机制允许客户端告诉服务器”我要发送多少数据”,但如果客户端只发送请求头而不发送请求体,就会导致:

  • 服务器分配了内存来缓存这个”未完成”的请求
  • 这个内存不会立即释放,会一直保留直到超时
  • 攻击者可以快速发送大量这样的请求,耗尽服务器内存

3. 攻击效果

结合以上两个特性,攻击者只需要:

  • 100Mbps 的带宽
  • 单台普通电脑
  • 10-18 秒

就可以让目标服务器分配数十 GB 的 RAM 资源,并阻止内存释放,导致服务彻底瘫痪。


实测数据

安全研究人员在受控环境中进行了测试:

中间件版本耗尽 32GB 内存所需时间
Envoy1.37.2~10 秒
Apache httpd2.4.67~18 秒

这意味着,即使是个人攻击者,也能够轻松地对大型服务器发动有效的 DoS 攻击。


缓解措施

1. 关闭 HTTP/2(临时方案)

如果暂时无法更新到修复版本,可以考虑临时关闭 HTTP/2:

Nginx:

http2 off;

Apache:

Protocols h2c http/1.1

⚠️ 注意:关闭 HTTP/2 会降低网站性能,建议尽快升级到修复版本。

2. 配置请求头限制

Nginx:

server {
    # 限制请求头大小
    client_header_buffer_size 4k;
    large_client_header_buffers 4 8k;
    
    # 限制请求头数量
    http2_max_fields 256;
    http2_max_field_size 8k;
}

Apache:

<IfModule mod_http2.c>
    H2MaxSession 1000
    H2MaxStream 100
</IfModule>

3. 限制单个连接的请求数

限制一个连接可以发送的请求数量,防止单个连接耗尽资源。

4. 启用连接超时

设置合理的超时时间,及时释放未完成的请求占用的资源。


各大厂商响应

已修复

  • Nginx:已发布安全更新,建议用户升级到最新版本
  • Apache HTTP Server:已发布安全更新,建议用户升级到最新版本

待修复

  • IIS:微软尚未发布官方补丁,建议先使用临时缓解措施
  • Envoy:暂无补丁,建议关注官方安全公告
  • CloudFlare Pingora:暂无补丁,CloudFlare 正在紧急处理中

建议

  1. 立即检查:确认你正在使用的 Web 中间件版本和配置
  2. 升级补丁:如果厂商已发布修复版本,立即升级
  3. 临时缓解:如果暂时无法升级,务必启用请求头限制等临时缓解措施
  4. 持续关注:关注各厂商的官方安全公告,及时获取最新信息
  5. 监控告警:部署内存使用监控,设置告警阈值,及时发现异常

参考链接


本篇文章将持续更新,欢迎关注后续报道。