
Sicherheitsforschungs-PoC für CVE-2026-49975: HTTP/2-HPACK-Kompressionsbombe + Flow-Control-Hold-DoS in Apache mod_http2
Security Research PoC von naheeju
⚠️ Dies ist ein funktionierendes Memory-Exhaustion-DoS-Tool — kein Spielzeug. Es öffnet Streams, die das Ziel zur Speicherallokation zwingen, und hält sie über HTTP/2-Flow-Control-Tricks offen. Solange der Prozess läuft, hält es weiter und verbindet sich automatisch neu, wenn der Server die Verbindung trennt — es stoppt nicht von selbst. Die Auswirkung skaliert direkt mit
--threads,--streamsund--headers. Das Stoppen des Prozesses (Ctrl+C) gibt die gehaltenen Streams frei und lässt den Server sich erholen, aber am Standardbetrieb ist nichts „sanft" — behandle jeden Lauf als Live-Fire-Test.
CVE-2026-49975 („HTTP/2 Bomb") ist eine remote ausnutzbare, nicht authentifizierte Denial-of-Service-Schwachstelle, die das mod_http2-Modul des Apache HTTP Server betrifft. Sie verkettet zwei seit Langem bekannte HTTP/2-Schwächen:
Cookie-Header-Fragmente zusammengeführt werden, ohne gegen LimitRequestFields gezählt zu werden, wodurch der Server wiederholt Speicher für interne Header-Bookkeeping-Strukturen allokieren muss.Das Ergebnis: Ein einzelner Client mit einer bescheidenen Verbindung kann eine erhebliche, anhaltende Speicherallokation auf dem Ziel erzwingen, solange der Stream offen gehalten wird. Diese Implementierung unterstützt zwei Payload-Modi und skaliert linear mit der von dir konfigurierten Nebenläufigkeit:
nginx-Modus — platziert einen leeren x-bomb-Header in der HPACK-Dynamic-Table und referenziert ihn wiederholt (~70:1-Verstärkung pro Referenz).classic-Modus — platziert stattdessen einen übergroßen cookie-Header (~4000:1-Verstärkung pro Referenz).Jede Verbindung referenziert den platzierten Header tausendfach pro Stream (--headers, Standard 5000), über mehrere Streams pro Verbindung (--streams, Standard 10) und mehrere parallele Verbindungen (--threads, Standard 1). Wenn der Server eine Verbindung schließt, verbindet sich das Tool sofort neu und macht weiter, bis es manuell gestoppt wird — dies ist eine kontinuierliche Hold-Schleife, keine einmalige One-Shot-Sonde.
Verwandte Identifikatoren für andere betroffene Stacks (nicht in diesem Repo implementiert oder getestet):
CVE-2026-47774Vollständiger Umfang der zugrunde liegenden Schwachstellenklasse, der Vollständigkeit halber — die „HTTP/2 Bomb"-Technik (HPACK Compression Bomb + Flow-Control Hold) betrifft mehrere Server-Implementierungen über Apache hinaus. Dieses Repo implementiert und testet nur den Apache-Fall; der Rest ist enthalten, damit Leser die breitere Klasse verstehen, nicht weil dieser PoC sie ausübt:
| Implementierung | Status | In diesem PoC implementiert? |
|---|---|---|
Apache HTTP Server mod_http2 | Behoben in httpd 2.4.68 (2026-06-08) | Ja — dieses Repo |
| nginx | Behoben in 1.29.8 | Nein |
| Envoy | Separat verfolgt | Nein |
| Microsoft IIS | Separat verfolgt | Nein |
| Cloudflare Pingora | Separat verfolgt | Nein |
| CVE | CVE-2026-49975 |
| CWE | CWE-789 (Memory Allocation with Excessive Size Value, laut NVD/CVE.org); von einigen Herstellern auch als CWE-409 (Improper Handling of Highly Compressed Data) geführt |
| CVSS | 7.5 (High) — CVSS v3.1, Availability-only-Vektor (laut NVD). Apaches eigenes Advisory bewertet es als Moderate. |
| Betroffene Komponente | Apache HTTP Server mod_http2 |
| Verwundbare Versionen | Apache httpd 2.4.17 ≤ Version ≤ 2.4.67 (Standard-HTTP/2-Konfiguration) |
| Behoben in | Apache HTTP Server 2.4.68 (veröffentlicht 2026-06-08). Der zugrunde liegende Fix landete upstream in mod_h2 am 2026-05-27, wurde am 2026-06-02 in den httpd-2.4.x-Branch gemergt und im 2.4.68-Release ausgeliefert. |
| Angriffstyp | Denial of Service — Memory Exhaustion (nur Verfügbarkeit) |
| Authentifizierung erforderlich | Nein |
| Datenoffenlegung / RCE | Keine — dies hat ausschließlich Auswirkungen auf die Verfügbarkeit |
| Bekannt ausgenutzt | Derzeit nicht von verfolgten Quellen als in-the-wild ausgenutzt markiert. |
Referenzen (Primärquellen — alle Angaben unabhängig verifizieren):
Dieses Repository enthält:
Dieses Repository enthält nicht:
Lies dies, bevor du irgendetwas anderes tust.