
HTTP/2 Bomb (CVE-2026-49975) nicht-destruktiver Schwachstellendetektor für Nginx / Apache httpd. Python ohne Abhängigkeiten.
HTTP/2 Bomb (CVE-2026-49975) Nicht-destruktives Schwachstellen-Erkennungstool – für Nginx / Apache httpd
CVE-2026-49975 ist eine weitverbreitete Remote-Denial-of-Service-Schwachstelle auf der HTTP/2-Protokollebene, die vom Sicherheitsforscher Quang Luong entdeckt wurde. Die Schwachstelle nutzt einen kombinierten Designfehler der HPACK-Header-Kompression und des Flusskontrollmechanismus aus. Ein Angreifer kann ohne Authentifizierung in 10–20 Sekunden 32 GB Arbeitsspeicher des Servers erschöpfen.
| Server | Betroffene Versionen | Verstärkungsfaktor | Status der Behebung |
|---|---|---|---|
| Apache httpd | 2.4.17 – 2.4.67 (mod_http2 < 2.0.41) | ~4.000:1 | ✅ Behoben |
| Nginx | < 1.29.8 | ~70:1 | ✅ Behoben |
| Envoy | ≤ 1.37.2 | ~5.700:1 | ❌ Nicht behoben |
| Microsoft IIS | inkl. Windows Server 2025 | ~68:1 | ❌ Nicht behoben |
| Cloudflare Pingora | ≤ 0.8.0 | ~62:1 | ❌ Nicht behoben |
Dieses Tool basiert auf einem echten PoC und verwendet zwei Erkennungsmodi:
Erkennt die HPACK Indexreferenz-Bombe: Füge einen dynamischen Tabelleneintrag ("a", "") ein und sende dann Indexreferenzen. Jede Referenz: 1 Byte online → 59 Bytes Server-RAM (3B Pool-Kopie + 56B ngx_table_elt_t). Angriffsparameter refs=32000, Erkennung verwendet nur refs=3.
Erkennt die Cookie-Crumb-Zusammenführungsbombe: Nutzt den Cookie-Zusammenführungsmechanismus von mod_http2 (apr_table_setn verbindet doppelte Cookies mit "; "). Der zusammengeführte Cookie wird nicht auf LimitRequestFields angerechnet. Angriffsparameter refs=4091 (~4000:1 Verstärkung), Erkennung verwendet nur refs=3.
ENHANCE_YOUR_CALM → 🛡️ Schutz aktivRST_STREAM ab → 🛡️ GeschütztGOAWAY → 🛡️ GeschütztKeine Abhängigkeiten, verwendet nur die Python-Standardbibliothek (ssl, socket, struct).
git clone https://github.com/adminlove520/http2-bomb-detector.git
cd http2-bomb-detector
Benötigt Python 3.7+.
# 自动检测(Nginx + Apache 两种模式)
python http2_bomb_detector.py --host example.com
# 指定模式
python http2_bomb_detector.py --host example.com --mode nginx
python http2_bomb_detector.py --host example.com --mode httpd
# 指定端口
python http2_bomb_detector.py --host example.com --port 8443
# 仅输出漏洞信息,不发送探测包
python http2_bomb_detector.py --host example.com --no-probe
# JSON 格式输出
python http2_bomb_detector.py --host example.com --json
# 从文件读取目标列表
python http2_bomb_detector.py -f targets.txt
# 输出报告
python http2_bomb_detector.py -f targets.txt -o report.txt
targets.txt-Format (eine Zeile pro Ziel, # am Zeilenanfang für Kommentare):
# Web 服务器列表
example.com
https://example.org:8443
192.168.1.100
[INFO] 连接 example.com:443 ...
[OK] HTTP/2 连接建立
[INFO] --- NGINX 模式检测 ---
[INFO] 攻击向量: HPACK 索引引用炸弹:动态表项 ('a','') × 32000 引用
[INFO] 修复版本: 1.29.8 | 放大比: ~70:1
[INFO] 发送探测包 (refs=3, 非破坏性)...
[WARN] ⚠️ 服务器静默接受探测包 — 可能受影响!
[INFO] --- HTTPD 模式检测 ---
[INFO] 攻击向量: Cookie crumb 合并炸弹:空 cookie × 4091 引用
[INFO] 修复版本: mod_http2 2.0.41 / httpd 2.4.68 | 放大比: ~4000:1
[INFO] 发送探测包 (refs=3, 非破坏性)...
[OK] 服务器 RST_STREAM 拒绝探测流 — 有防护
==================================================
🛡️ NGINX: potentially_vulnerable
⚠️ HTTPD: protected
Dieses Tool ist nur für autorisierte Sicherheitstests bestimmt. Die Verwendung dieses Tools zur Überprüfung nicht autorisierter Ziele kann gegen Gesetze verstoßen. Der Benutzer trägt die alleinige rechtliche Verantwortung.
MIT