
PoC per CVE-2025-53020 - bombardamento HPACK per Apache HTTPD.
Una proof of concept che dimostra CVE-2025-53020, una vulnerabilità di esaurimento della memoria nell'implementazione HTTP/2 di Apache httpd che ho trovato a metà 2025.
📖 Analisi approfondita: galbarnahum.com/posts/apache-httpd-cve-2025-53020
Apache httpd è vulnerabile a un attacco denial-of-service tramite l'elaborazione delle intestazioni HTTP/2. La vulnerabilità esiste a causa di una duplicazione non necessaria della memoria quando si gestiscono nomi di intestazione ripetuti nelle richieste HTTP/2.
h2 - libreria di protocollo HTTP/2tqdm - barra di avanzamento per la visualizzazione dell'attaccopip install h2 tqdm
python poc.py --url https://target.example.com/
| Argomento | Predefinito | Descrizione |
|---|---|---|
--url | obbligatorio | URL di destinazione (es., https://example.com/path) |
--header-name-length | 4064 | Lunghezza del nome dell'intestazione (max: 4064) |
--header-reps | 2063 | Numero di ripetizioni dell'intestazione per richiesta (massimo consigliato: 2063) |
--requests-per-batch | 1 | Numero di richieste per lotto |
--batches | 100 | Numero di lotti da inviare |
--delay | 0 | Ritardo tra i lotti in secondi |
--num-headers-to-repeat | 1 | Numero di diversi nomi di intestazione da creare (usa i caratteri a, b, c, ecc.) |
Attacco standard contro target HTTPS:
python poc.py --url https://target.com/api/endpoint
Attacco con impostazioni personalizzate delle intestazioni:
python poc.py --url http://localhost:8080/test --header-reps 1000 --batches 200
Attacco con più nomi di intestazione distinti:
python poc.py --url https://target.com --num-headers-to-repeat 3 --header-name-length 3000
Attacco più lento con ritardo tra i lotti:
python poc.py --url https://target.com --delay 0.5 --batches 500
Il PoC include una patch per l'encoder HPACK della libreria h2 per gestire correttamente i valori di intestazione vuoti. Questa correzione risolve un bug in cui l'encoder indicizzava in modo errato le intestazioni con valori stringa vuoti (considerando "" come falsy invece di controllare None).
--num-headers-to-repeat > 1, la lunghezza del nome dell'intestazione deve essere < 4000Versioni di Apache httpd vulnerabili a CVE-2025-53020. Controllare gli advisory di sicurezza ufficiali di Apache per informazioni specifiche sulle versioni e le patch.
⚠️ Questo strumento è fornito solo per scopi educativi e test di sicurezza autorizzati.
Questo progetto è per scopi di ricerca sulla sicurezza. Usarlo in modo responsabile ed etico.