mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4mobile wallpaper 5mobile wallpaper 6
2354 字
7 分钟
CVE-2026-49975 | HTTP/2 炸弹——一字节打崩 32G 内存服务器
2026-06-18

CVE-2026-49975:HTTP/2 炸弹——一字节打崩 32G 内存服务器#

(这篇博客可能有点晚了,希望理解下QAQ)

TL;DR:攻击者只需一台家用电脑、一条 100Mbps 宽带,借助 1 字节的精心构造数据包,即可在约 20 秒内耗尽目标服务器全部 32GB 内存,使其彻底宕机。Apache、Nginx、IIS、Envoy、Cloudflare Pingora 均受影响。全球超 88 万台服务器正面临威胁,PoC 已公开。

哔哩哔哩视频截图@网络小白_Uncle城

简单弄了一个表格#

属性详情
CVE 编号CVE-2026-49975
别名HTTP/2 Bomb
披露日期2026 年 6 月 2–3 日
发现者Quang Luong(Calif.IO),借助 OpenAI Codex
影响软件Apache httpd、Nginx、Microsoft IIS、Envoy、Cloudflare Pingora
攻击方式无需认证,单连接远程 DoS
放大倍率Nginx ~70:1 / Apache ~4,000:1 / Envoy ~5,700:1
PoC 状态已公开

背景#

这个漏洞的作者在披露文章里写了一句话:

“14 年前,我帮助破解了 HTTP 头部压缩方案,然后被邀请审阅修复方案——那个修复后来成为了 HTTP/2 的一部分。如今,我们正在发布一个我当初遗漏的攻击。”

HTTP/2 的 HPACK 压缩(RFC 7541)和流量控制(RFC 9113)是两个彼此独立的老特性,各自的滥用方式早在 2016 年就已有人记录(CVE-2016-6581、CVE-2016-8740)。然而十年间,没有人把它们组合在一起。

这一次,是 AI 做到了。Codex 在分析代码时,自主将两种已知技术链接成了全新的攻击链,并在主流 Web 服务器上实现了前所未有的放大效果。


技术原理 两枚炸弹拼成一个核弹#

HPACK 索引引用炸弹#

HPACK 是一种有状态压缩协议。通信双方各自维护一张”动态表”,存放最近见过的请求头。发送方可以把一个头部插入表中,之后每次只用发送 1 字节的索引,接收方(服务器)就会自行在表里找到对应的条目,并为当前请求分配一份完整的内存副本

攻击者的操作:

  1. 往动态表里植入一条”几乎为空”的头部(成本极低)
  2. 在后续请求中,发送数千个”1 字节索引引用”,每个引用指向同一条目
  3. 服务器每收到一个引用,就要分配一份独立的内存 bookkeeping 结构

关键点:放大倍率来自服务器为每条索引引用分配的元数据开销,而非头部值本身的大小。这意味着:传统防御中基于”解码后头部总大小”的限制完全失效,因为”几乎没什么可解码的”。

各服务器实测放大比(每 1 字节输入 → 服务器内存分配):

Envoy ≈ 5,700:1 Apache httpd ≈ 4,000:1 nginx ≈ 70:1 Microsoft IIS ≈ 68:1

HTTP/2 流量窗口卡死(Slowloris 变体)#

在 HTTP/2 中,客户端可以通过发送”零字节流量控制窗口”,阻止服务器完成响应发送。攻击者做到:

  1. 宣告 window = 0(服务器被卡住,无法发出响应)
  2. 每隔一段时间,发送 1 字节的 WINDOW_UPDATE 帧,重置发送超时
  3. 服务器的所有内存分配被无限期”钉在”内存中,永远不释放

两步组合的效果:写入快、永不释放

针对有头部数量限制服务器的绕过#

Apache 和 Envoy 设有每请求头部字段数量的上限,本可挡住朴素的 HPACK 炸弹。攻击者利用了 RFC 9113 §8.2.3 中一条合法规定:

Cookie 头部允许被拆分为”每个 crumb 一个字段”发送。

Apache 和 Envoy 在统计头部字段数时没有把 Cookie crumbs 计入上限——这个细节成了整个防御体系最致命的漏洞。


破坏力#

研究人员的演示数据:

攻击场景:单台家用电脑 + 100Mbps 宽带连接 目标:默认 HTTP/2 配置的各主流服务器

Envoy 1.37.2 → 10 秒内耗尽 32GB 内存 Apache httpd 2.4.67 → 18 秒内耗尽 32GB 内存 nginx 1.29.7 → 45 秒内耗尽 32GB 内存 Microsoft IIS → 45 秒内耗尽 64GB 内存

吓哭了…

研究者还说,真实攻击场景中更”优雅”的玩法不是直接 OOM 打崩进程(因为进程崩溃后会自动重启),而是把服务器内存压力维持在略低于 OOM 阈值的位置,迫使系统大量使用 swap,让每一个正常请求都变得极其缓慢——这种慢性折磨往往比直接崩溃更难发现、更难恢复


影响范围:全球 88 万台,国内高校重灾区#

Shodan 扫描显示,全球超过 880,000 台公网暴露的服务器同时满足以下条件:

  • 开启了 HTTP/2(ssl.alpn: "h2"
  • 运行受影响的软件(nginx / Apache / IIS / Envoy / Pingora)
  • 使用默认配置

受影响的行业分布极广——正是因为 Apache 和 Nginx 本身就是通用基础设施,而非某个垂直领域的专用软件。国内大量高校官网、政府服务网站、中小企业主机使用旧版 Apache/Nginx 且长期不更新,是此次漏洞的高危群体。

值得注意的是,Cloudflare Pingora 也在受影响列表中。Pingora 是 Cloudflare 自研的 HTTP 代理引擎,用于为其他网站提供 DDoS 防护——代理层本身的漏洞,意味着防护盾也可能成为攻击面。


AI发力了 Codex 发现漏洞 也能生成 Exploit#

有两个细节:

漏洞是AI发现的。Codex 通过分析代码,自主将两种已知技术串联成新的攻击链——这是 AI 辅助安全研究的一个里程碑式案例。

补丁本身是Exploit说明书。研究团队在报告中写:

“上述修复 commit 是公开的,且直接披露了攻击向量;任何有能力的 AI 模型都可以把这些代码差异(diff)转化为一个可用的漏洞利用脚本——事实上,这正是我们发现 IIS、Envoy 和 Pingora 也存在漏洞的方式。”

就是说公开的补丁 + AI 代码分析 = 自动生成新目标的 PoC。这条”commit-to-exploit”的路径极短,研究团队正是因此决定立即全量披露,而非等待所有厂商完成修复。


历史上的 HPACK 炸弹#

这并非第一次 HTTP/2 头部压缩被滥用:

  • CVE-2016-6581(2016):Cory Benfield 提出原始 HPACK Bomb 概念
  • CVE-2016-8740(2016):Apache 无限 CONTINUATION 帧耗尽内存
  • CVE-2016-1546(2016):Apache worker 线程饥饿
  • CVE-2025-53020(2025):Gal Bar Nahum 对 Apache httpd 实现 ~4,000:1 放大

新漏洞的创新是:放大来源从”大头部值”转移到了”元数据 bookkeeping”,从而绕过了过去十年基于解码大小的防御。


怎么办呢#

Nginx#

推荐:升级到 1.29.8+

该版本新增了 max_headers 指令(默认上限 1000),从 freenginx 引入。

nginx.conf
http {
# 显式设置更严格的限制(可选)
# 默认 1000 已足够防御此攻击
}

如无法升级,临时禁用 HTTP/2

server {
listen 443 ssl;
# 移除 http2 参数,即可禁用 HTTP/2
# listen 443 ssl http2; ← 改为下面这行
listen 443 ssl;
}

Apache httpd#

推荐:升级 mod_http2 到 v2.0.41+

独立发布版本可从 GitHub icing/mod_h2 获取;Apache HTTP Server 2.4.68 已包含此修复。

修复内容:Cookie 头部 crumbs 现在会被计入 LimitRequestFields 上限。

# httpd.conf - 可额外收紧请求头限制
LimitRequestFields 100

如无法升级,临时禁用 HTTP/2:

# httpd.conf 或对应 VirtualHost
Protocols http/1.1

Microsoft IIS / Envoy / Cloudflare Pingora#

截至披露时,Envoy 已发布补丁。IIS 和 Pingora 暂无官方修复,建议:

  • 在前置代理/防火墙层强制限制每请求头部字段数量
  • 在不影响业务的前提下关闭 HTTP/2
  • 通过 cgroups 或容器内存限制约束单个 worker 进程的内存上限(OOM-killed 后自动重启 >> 整机打进 swap)

建议#

# 通过 cgroups v2 限制 Nginx worker 内存(示例)
# 避免单 worker 内存泄漏拖垮整台机器
[Service]
MemoryMax=4G

WAF 层面,FortiWeb、Imperva Cloud WAF 等主流产品已针对此漏洞更新了检测规则,具备 HTTP/2 头部约束能力的 WAF 均可作为缓解手段部署在后端服务前方。


检测#

# 检查 nginx 版本
nginx -v
# 需要 >= 1.29.8
# 检查 Apache mod_http2 版本
apache2ctl -M | grep http2
# 对应 mod_http2 需 >= 2.0.41
# 检查服务器是否对外暴露 HTTP/2
curl -sI --http2 https://your-domain.com | grep -i "HTTP/"
# Shodan 查询语法(确认自己是否在暴露列表中)
# ssl.alpn:"h2" hostname:your-domain.com

  1. 把十年老技术和 AI 捆在一起,真的就是新的武器。AI 让安全领域里那种“组合爆炸”的风险变得更可怕,几乎一下子放大了
  2. 默认配置其实就很危险了。管理员啥都不用手动开,HTTP/2 在现代服务器上压根就是默认启用,只要服务器补丁没跟上,随时落在攻击者瞄准里
  3. PoC 已经放出来了,窗口期短得让人慌。从补丁提交到 exploit 能用,AI 已经可以自动搞定整个流程。说实话,之前那个“等等稳定版本再升级”的套路,这种漏洞面前根本没用了

锐评: ai

参考资料:Calif.IO 原始披露博客 / oss-sec 邮件列表 / BleepingComputer / SecurityWeek / HAProxy 官方博客

分享

如果这篇文章对你有帮助,欢迎分享给更多人!

CVE-2026-49975 | HTTP/2 炸弹——一字节打崩 32G 内存服务器
http://blog.mcstarland.top/posts/oombug/
作者
MEMZGBL
发布于
2026-06-18
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

封面
Sample Song
Sample Artist
封面
Sample Song
Sample Artist
0:00 / 0:00