CVE复现|CVE-2026-49975(HTTP/2Bomb远程拒绝服务漏洞)"

admin 2026-10-20 05:30:06 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

cover_image

CVE复现 | CVE-2026-49975(HTTP/2 Bomb 远程拒绝服务漏洞)

原创

LRT凌日
LRT凌日

凌日网络与信息安全团队LapR1skT

2026年6月5日 21:22
重庆

在小说阅读器读本章

去阅读

概述

2026年6月2日,一个影响范围极广的HTTP/2协议层漏洞被公开披露,编号 CVE-2026-49975(QVD-2026-30962)。该漏洞源于HTTP/2头部压缩(HPACK)和流控制机制的组合性设计缺陷,攻击者无需身份验证,仅通过网络即可发起攻击,造成目标服务器内存耗尽、业务瘫痪。

该漏洞由安全研究员Quang Luong发现,其利用AI 工具将两个已知十年的技术串联:HPACK压缩炸弹和Window Stall流控停顿,形成了一个极具破坏力的攻击链。

影响量级: 十万级网站
CVSS 3.1: 9.8(高危)
利用可能性: 高
POC/EXP状态: 已公开

漏洞原理

HTTP/2 HPACK头部压缩

HTTP/2协议使用HPACK(RFC 7541)作为头部压缩算法。HPACK维护一个动态表(Dynamic Table),用于存储已发送的头部字段。发送方可以将一个头部插入动态表,之后通过1字节的索引引用来代表完整的头部字段,接收方在解码时会将索引引用展开为完整的头部内容。

这个设计的初衷是减少网络传输开销,平均可减少约30%的头部大小。但正是这种”1字节→N字节”的放大机制,成为了攻击者的利器。

攻击链:HPACK Bomb + Window Stall

该漏洞的攻击链由两部分组成:

第一部分

HPACK索引引用炸弹

攻击者先向动态表插入一个头部(如Cookie),然后在后续请求中发送数千个指向该表项的1字节索引引用。服务器在解码时,需要为每个索引引用分配完整的头部内存。

1. 客户端发送:1字节索引引用×2048次=2,048字节网络流量
2. 服务器分配:4,058字节×2,048次≈8MB内存

第二部分

Window Stall流控停顿

HTTP/2的流控制机制允许接收方通过WINDOW\_UPDATE帧控制发送方的数据传输窗口。攻击者将初始窗口大小设为0(INITIAL\_WINDOW\_SIZE=0),服务器永远无法完成响应发送,已分配的内存永远不会被释放。

两部分结合:攻击者用极小的网络流量触发服务器大量内存分配,然后锁定这些内存不释放,最终导致服务器内存耗尽。

为什么传统防御失效

该攻击利用的是HTTP/2协议层面的特性:

1. 每个请求的头部\"数量\"在服务器看来可能只有1个(合并后的Cookie),绕过了头部数量限制
2. 解码后的\"大小\"限制也不会触发,因为单个头部值本身不大,放大来自重复引用
3. 请求体积和频率都很低,传统的请求阈值防御无法识别

影响范围

服务器 受影响版本 放大比 状态
Envoy 1.37.2 ~5,700:1 未修复
Apache httpd 2.4.67 (mod\_http2 < 2.0.41) ~4,000:1 已修复
nginx 1.29.8 ~70:1 已修复
Microsoft IIS 含 Windows Server 2025 ~68:1 未修复
Cloudflare Pingora 0.8.0 ~62:1 未修复

国内高校实测

我们使用仓库中的envoy PoC脚本(envoy/hpack\_cookie\_bomb.py),对国内多省市高校网站进行了HTTP/2 HPACK Bomb漏洞测试。测试参数统一为:

1. python3 envoy/hpack_cookie_bomb.py --host <目标>--port 443--server-name <目标> \\
2. --connections 1--streams 1--refs 2048--cookie-value-size 4058--initial-window 0--hold 10

说明: 本次测试为非破坏性验证,仅验证漏洞是否存在,未进行实际资源消耗攻击。

3.测试结论

本次测试共扫描200+所高校网站,覆盖重庆、北京、广东、四川四省市。其中58所高校的网站确认存在HTTP/2 HPACK Bomb漏洞,所有站点的放大比均在1356:1至1357:1之间,线上字节约6KB即可触发约8MB的内存分配。

值得注意的是,这些高校网站的服务器类型多为隐藏状态(未公开Server头部),但均支持HTTP/2协议且未对HPACK压缩进行安全限制。

漏洞危害分析

01

攻击成本极低

攻击者仅需100Mbps带宽即可发起有效攻击
单个连接、单个请求即可触发大量内存分配
6KB网络流量 → 8MB服务器内存(放大比1357:1)
攻击持续10-20秒即可耗尽服务器32GB内存

02

防御困难

传统WAF基于请求体积和频率的检测机制无效

每个请求在服务器看来只有1个头部,不触发头部数量限制

解码后单个头部值大小正常,不触发大小限制

攻击流量与正常HTTP/2流量无法区分

03

影响严重

服务器内存被快速耗尽,导致OOM
被攻击的服务完全不可用
可能影响同一服务器上的其他业务
高校网站多为招生、教务等关键业务,影响面广

复现步骤

01

环境准备

1. git clone https://github.com/califio/publications.git
2. cd publications/MADBugs/http2-bomb
3. pip install h2 hyper-h2

02

验证目标HTTP/2支持

1. import ssl, socket

3. ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
4. ctx.check_hostname =False
5. ctx.verify_mode = ssl.CERT_NONE
6. ctx.set_alpn_protocols(['h2','http/1.1'])

8. with socket.create_connection(('www.example.edu.cn',443), timeout=10)as sock:
9. with ctx.wrap_socket(sock, server_hostname='www.example.edu.cn')as ssock:
10. print('ALPN:', ssock.selected_alpn_protocol())

03

运行PoC

PoC附件:https://github.com/beichenst/http2-bomb

1. python3 envoy/hpack_cookie_bomb.py \\
2. --host www.example.edu.cn \\
3. --port 443 \\
4. --server-name www.example.edu.cn \\
5. --connections 1 \\
6. --streams 1 \\
7. --refs 2048 \\
8. --cookie-value-size 4058 \\
9. --initial-window 0 \\
10. --hold 10

修复建议

已有补丁的服务器

1. nginx:升级至1.29.8+,该版本引入max_headers指令,默认限制1000个请求头。

3. Apache httpd:升级至mod_http2 v2.0.41+,该版本将Cookie头部计入LimitRequestFields限制。

暂无补丁的服务器

Microsoft IIS、Envoy、Cloudflare Pingora: 截至本文发布时,官方尚未发布补丁。

通用缓解措施
1. 禁用HTTP/2:如业务允许,将服务回退至HTTP/1.1协议
2. 部署CDN/反向代理:在受影响服务器前部署支持严格头部数量限制的中间网关
3. 限制Worker内存:通过cgroups或ulimit为工作进程设置严格内存限制,避免单个Worker耗尽整机内存
4. 配置双重限制:同时设置\"最大解码头部大小\"和\"最大头部数量\"两项独立限制
5. 限制停滞流生命周期:对停滞流设置严格的生命周期上限,不受WINDOW_UPDATE活动影响

参考资料

1. [1] HTTP/2Bomb原始研究博客:https://blog.calif.io/p/codex-discovered-a-hidden-http2-bomb
2. [2]PoC代码仓库:https://github.com/califio/publications/tree/main/MADBugs/http2-bomb
3. [3] RFC 7541 HPACK:https://www.rfc-editor.org/rfc/rfc7541
4. [4] RFC 9113 HTTP/2:https://www.rfc-editor.org/rfc/rfc9113
5. [5] CVE-2026-49975:https://www.cve.org/CVERecord?id=CVE-2026-49975
6. [6] CVE-2016-6581(早期HPACK Bomb):https://nvd.nist.gov/vuln/detail/CVE-2016-6581
免责声明:由于传播、利用本公众号凌日网络与信息安全团队所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号凌日网络与信息安全团队及作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!

邮箱地址解析不一致导致的账号覆盖与接管漏洞" 网络安全文章

邮箱地址解析不一致导致的账号覆盖与接管漏洞"

本文分析了因邮箱地址解析不一致导致的账号覆盖与接管漏洞。当系统缺乏邮箱规范化处理与验证时,攻击者可在正常邮箱后添加URL编码字符如%23注册,利用登录解析差异使其映射至真实邮箱,进而覆盖密码或接管账号。建议统一邮箱清洗标准并强制验证以防范此逻辑绕过风险。
AI渗透测试Skill藏恶意代码:你装的\"武器\"可能在背刺你" 网络安全文章

AI渗透测试Skill藏恶意代码:你装的\"武器\"可能在背刺你"

文章揭露AI渗透测试Skill存在供应链攻击风险,两个GitHub项目被植入恶意代码,在成功获取目标权限后自动删除数据库并插入后门账号。作者指出当前AISkill生态缺乏代码审计,用户普遍不审查源码,AIagent无条件信任skill指令,导致攻击隐蔽且危害巨大。建议用户使用前必须审阅源码、关注GitHub历史、优先选择高星项目、设置人工确认步骤、使用沙箱隔离环境并定期审计已安装skill。
评论:0   参与:  0