minc-nice-100/http2-bomb-analysis-paper
GitHub: minc-nice-100/http2-bomb-analysis-paper
一份以 LaTeX 编写的 HTTP/2 Bomb 漏洞深度分析论文,详尽剖析了 HPACK 索引引用放大与流控制停滞的攻击链机制及其对五大主流 Web 服务器的影响与防御方案。
Stars: 1 | Forks: 1
# HTTP/2 Bomb:HPACK 索引引用放大链攻击
**一名高中生的独立技术深入分析**
*2026 年 6 月*
## 太长不看
本仓库包含了我对 **HTTP/2 Bomb** 漏洞(CVE-2026-49975 / CVE-2026-47774)的完整分析,该漏洞将两个具有数十年历史的 HTTP/2 原语进行了链式组合:
- **HPACK 索引引用放大** – 向几乎为空的动态表条目发送数千个单字节引用
- **Flow-control 窗口停滞** – 零初始窗口加上周期性的 1 字节 WINDOW_UPDATE,从而永久占用内存
**结果:** 单个 100 Mbps 的客户端可以在短短 **10 秒内**耗尽服务器 **32 GB 的内存**。
## 🧠 我是如何接触到这个问题的
这一切始于我在漫无目的地刷 **Bilibili**(中国的 YouTube)。一个科技频道简短地提到了“一种新型 HTTP/2 攻击导致主流 Web 服务器瘫痪”。没有细节,只有标题。
这引起了我的兴趣。我暂停了视频,打开了披露链接,随后便陷入了这个深坑。一篇论文引出了五个 CVE,接着引出了 RFC,又引出了源代码。直到我完全弄明白为什么线上传输的单个字节能够占用 59 字节的内存——以及为什么以前没有人将这两个技巧串联起来——我才停下来。
所以这个仓库不仅仅是一个摘要。这是我完整、毫不妥协的深度剖析,使用 LaTeX 从零开始编写。没有老师要求我这样做。我只是无法放下它。
## 影响
影响所有五大主要 Web 服务器实现的默认配置:
| 实现 | 放大倍数 | 耗尽至 32GB 时间 |
|----------------|--------------|---------------|
| Envoy 1.37.2 | ~5,700:1 | ~10 秒 |
| Apache httpd 2.4.67 | ~4,000:1 | ~18 秒 |
| nginx 1.29.7 | ~70:1 | ~45 秒 |
| Microsoft IIS | ~68:1 | ~45 秒 |
| Cloudflare Pingora | ~68:1 | — |
## 目录
| 文件 | 描述 |
|------|-------------|
| `http2-bomb-paper.tex` | 我完整论文的 LaTeX 源码 |
| `http2-bomb-paper.pdf` | 编译好的 PDF(可直接阅读) |
| `README.md` | 本文件 |
**中文博客文章(通俗易懂版):**
[https://www.itedev.com/posts/2026/06/12/http2-bomb-blog-zh](https://www.itedev.com/posts/2026/06/12/http2-bomb-blog-zh)
## 核心发现(独立分析)
1. 放大效应源于**每个条目的簿记开销**(内存池块、结构体),而不是解码后的大小——这绕过了传统的 HPACK bomb 防御。
2. Apache 中的 Cookie 片段合并会产生 **O(N²) 的二次方内存增长**。
3. Envoy 的 Cookie 缓冲区绕过了 `max_request_headers_kb`——放大倍数高达 5,700 倍。
4. RFC 7541 §7.3 规范缺陷:仅对压缩率进行了建模,而未考虑**每个条目的分配器开销 + Flow-control 占用**。
## 防御模型
| 控制措施 | 防御目标 |
|---------|----------------|
| 最大解码 Header 大小 | 传统 HPACK bomb |
| **最大 Header 字段数**(包含 Cookie 片段) | 索引引用 bomb(本攻击) |
| 停滞 Stream 生命周期限制 | Flow-control 内存占用 |
## 为什么这很重要
该漏洞是由 **AI (Codex)** 在同时阅读五个代码库时发现的——这是一类新型的跨实现协议缺陷,即*“没有人负责处理边缘的衔接部分。”*
## 基于
由 Quang Luong、Jun Rong、Duc Phan(Calif Security Research)于 2026 年 6 月 2 日进行的协调披露。
原论文:[blog.calif.io/p/codex-discovered-a-hidden-http2-bomb](https://blog.calif.io/p/codex-discovered-a-hidden-http2-bomb)
## 作者
**Zhicheng Wu**
新会第一中学,2028 届
中国广东
## 许可证
本作品采用 [CC BY 4.0](http://creativecommons.org/licenses/by/4.0/) 许可。
您可以自由分享和改编,但需注明出处。
*仅用于学术和防御目的。*
标签:HTTP/2, LaTeX, 拒绝服务攻击, 漏洞分析, 网络安全, 路径探测, 配置错误, 隐私保护