
PoC di ricerca sulla sicurezza per CVE-2026-49975: bomba di compressione HTTP/2 HPACK + DoS con blocco del controllo di flusso in Apache mod_http2
PoC di ricerca sulla sicurezza di naheeju
⚠️ Questo è uno strumento DoS funzionante di esaurimento della memoria — non un giocattolo. Apre stream che costringono il target ad allocare memoria e li mantiene aperti tramite trucchi di controllo di flusso HTTP/2. Finché il processo è in esecuzione, continua a mantenere e si riconnette automaticamente se il server chiude la connessione — non si ferma da solo. L'impatto scala direttamente con
--threads,--streamse--headers. Fermare il processo (Ctrl+C) rilascia gli stream mantenuti e consente al server di riprendersi, ma nulla nel funzionamento predefinito è "gentile" — considera ogni esecuzione come un test a fuoco vivo.
CVE-2026-49975 ("HTTP/2 Bomb") è una vulnerabilità di Denial-of-Service remota e non autenticata che interessa il modulo mod_http2 di Apache HTTP Server. Concatena due debolezze HTTP/2 note da tempo:
Cookie senza che vengano conteggiati ai fini di LimitRequestFields, costringendo il server ad allocare ripetutamente memoria per le strutture interne di bookkeeping degli header.Il risultato: un singolo client su una connessione modesta può forzare un'allocazione di memoria significativa e sostenuta sul target per tutto il tempo in cui lo stream viene mantenuto aperto. Questa implementazione supporta due modalità di payload e scala linearmente con la concorrenza configurata:
nginx — inserisce un header x-bomb vuoto nella tabella dinamica HPACK e lo referenzia ripetutamente (~70:1 di amplificazione per riferimento).classic — inserisce invece un header cookie sovradimensionato (~4000:1 di amplificazione per riferimento).Ogni connessione referenzia nuovamente l'header inserito migliaia di volte per stream (--headers, predefinito 5000), su più stream per connessione (--streams, predefinito 10) e più connessioni parallele (--threads, predefinito 1). Se il server chiude una connessione, lo strumento si riconnette immediatamente e continua finché non viene fermato manualmente — questo è un ciclo di mantenimento continuo, non una singola sonda una tantum.
Identificatori correlati per altri stack interessati (non implementati né testati da questo repo):
CVE-2026-47774Ambito completo della classe di debolezza sottostante, per completezza — la tecnica "HTTP/2 Bomb" (bomba di compressione HPACK + blocco del controllo di flusso) interessa diverse implementazioni server oltre ad Apache. Questo repo implementa e testa solo il caso Apache; il resto è incluso affinché i lettori comprendano la classe più ampia, non perché questo PoC le eserciti:
| Implementazione | Stato | Implementata in questo PoC? |
|---|---|---|
Apache HTTP Server mod_http2 | Corretta in httpd 2.4.68 (2026-06-08) | Sì — questo repo |
| nginx | Corretta in 1.29.8 | No |
| Envoy | Tracciata separatamente | No |
| Microsoft IIS | Tracciata separatamente | No |
| Cloudflare Pingora | Tracciata separatamente | No |
| CVE | CVE-2026-49975 |
| CWE | CWE-789 (Memory Allocation with Excessive Size Value, secondo NVD/CVE.org); tracciata anche come CWE-409 (Improper Handling of Highly Compressed Data) da alcuni vendor |
| CVSS | 7.5 (High) — CVSS v3.1, vettore solo disponibilità (secondo NVD). L'advisory di Apache la valuta Moderate. |
| Componente interessato | Apache HTTP Server mod_http2 |
| Versioni vulnerabili | Apache httpd 2.4.17 ≤ versione ≤ 2.4.67 (configurazione HTTP/2 predefinita) |
| Corretta in | Apache HTTP Server 2.4.68 (rilasciata il 2026-06-08). La correzione sottostante è arrivata upstream in mod_h2 il 2026-05-27, unita al branch httpd 2.4.x il 2026-06-02, distribuita nella release 2.4.68. |
| Tipo di attacco | Denial of Service — esaurimento della memoria (solo disponibilità) |
| Autenticazione richiesta | No |
| Esposizione dati / RCE | Nessuna — questo è solo un impatto sulla disponibilità |
| Sfruttamento noto | Attualmente non segnalato come sfruttato attivamente nel mondo reale dalle fonti tracciate. |
Riferimenti (fonti primarie — verifica in modo indipendente tutte le affermazioni):
Questo repository contiene:
Questo repository non contiene:
Leggi questo prima di fare qualsiasi altra cosa.