
PoC für CVE-2025-53020 - HPACK bombing für Apache HTTPD.
Ein Proof-of-Concept, der CVE-2025-53020 demonstriert, eine Speichererschöpfungsschwachstelle in der HTTP/2-Implementierung von Apache httpd, die ich Mitte 2025 entdeckt habe.
📖 Tiefergehende Analyse: galbarnahum.com/posts/apache-httpd-cve-2025-53020
Apache httpd ist anfällig für einen Denial-of-Service-Angriff über die HTTP/2-Header-Verarbeitung. Die Schwachstelle besteht aufgrund unnötiger Speicherverdopplung bei der Verarbeitung wiederholter Header-Namen in HTTP/2-Anfragen.
h2 - HTTP/2-Protokollbibliothektqdm - Fortschrittsbalken zur Angriffsvisualisierungpip install h2 tqdm
python poc.py --url https://target.example.com/
| Argument | Standard | Beschreibung |
|---|---|---|
--url | erforderlich | Ziel-URL (z.B. https://example.com/pfad) |
--header-name-length | 4064 | Länge des Header-Namens (max: 4064) |
--header-reps | 2063 | Anzahl der Header-Wiederholungen pro Anfrage (empfohlenes Maximum: 2063) |
--requests-per-batch | 1 | Anzahl der Anfragen pro Stapel |
--batches | 100 | Anzahl der zu sendenden Stapel |
--delay | 0 | Verzögerung zwischen den Stapeln in Sekunden |
--num-headers-to-repeat | 1 | Anzahl der zu erstellenden verschiedenen Header-Namen (verwendet Zeichen a, b, c, usw.) |
Standardangriff gegen HTTPS-Ziel:
python poc.py --url https://target.com/api/endpoint
Angriff mit benutzerdefinierten Header-Einstellungen:
python poc.py --url http://localhost:8080/test --header-reps 1000 --batches 200
Angriff mit mehreren unterschiedlichen Header-Namen:
python poc.py --url https://target.com --num-headers-to-repeat 3 --header-name-length 3000
Langsamerer Angriff mit Verzögerung zwischen Stapeln:
python poc.py --url https://target.com --delay 0.5 --batches 500
Das PoC enthält einen Patch für den HPACK-Encoder der h2-Bibliothek, um leere Header-Werte korrekt zu behandeln. Dies behebt einen Fehler, bei dem der Encoder Header mit leeren Zeichenfolgenwerten fälschlicherweise indiziert (indem er "" als falsy behandelt, anstatt auf None zu prüfen).
--num-headers-to-repeat > 1 sollte die Header-Namen-Länge < 4000 seinApache httpd-Versionen, die für CVE-2025-53020 anfällig sind. Überprüfen Sie die offiziellen Apache-Sicherheitshinweise auf spezifische Versionsinformationen und Patches.
⚠️ Dieses Tool wird ausschließlich zu Bildungs- und autorisierten Sicherheitstestzwecken bereitgestellt.
Dieses Projekt dient Sicherheitsforschungszwecken. Nutzen Sie es verantwortungsvoll und ethisch.