
Analisi tecnica approfondita e proof-of-concept per CVE-2024-38063, una RCE critica del kernel IPv6 di Windows. Include analisi della causa principale, PoC basato su Scapy e guida di laboratorio isolata per ricerca educativa.
Questo repository contiene la nostra ricerca e analisi di CVE-2024-38063, una vulnerabilità critica nello stack TCP/IP di Windows.
CVE sta per Common Vulnerabilities and Exposures. È un dizionario standardizzato di difetti di cybersecurity divulgati pubblicamente, mantenuto dalla MITRE Corporation. Ogni voce riceve un identificatore univoco nel formato CVE-ANNO-NUMERO.
| Campo | Dettaglio |
|---|
| ID CVE | CVE-2024-38063 |
| Soprannome | The IPv6 Kernel Killer |
| Gravità | Critica (CVSS 9.8 / 10) |
| Tipo | Esecuzione Remota di Codice (RCE) |
| Posizione | Stack TCP/IP di Windows (tcpip.sys) |
| Data della Patch | Agosto 2024 (Patch Tuesday di Microsoft) |
| Scoperta da | ZeQiao Wu (NSFOCUS TIANQI LAB) |
Un punteggio CVSS di 9.8 indica un problema di gravità quasi massima che richiede una patch immediata.
Durante questa ricerca abbiamo svolto il seguente lavoro:
Studio di Base sul CVE
Spiegato cosa sia un CVE, come vengono assegnati gli identificatori da MITRE e quali informazioni contiene tipicamente un record CVE.
Caratterizzazione della Vulnerabilità
Documentato perché CVE-2024-38063 è considerato un bug "santo graal": nessuna autenticazione, nessuna interazione con l'utente, potenziale wormabile, IPv6 abilitato per impostazione predefinita e impatto a livello di kernel.
Fondamenti di IPv6
Trattate le differenze tra IPv4 e IPv6, il ruolo degli header di estensione e perché la frammentazione funziona diversamente in IPv6.
Analisi Approfondita della Causa Radice
Tracciato il percorso completo dei pacchetti all'interno di tcpip.sys:
NET_BUFFER_LIST (NBL)Ipv6pProcessOptions e IppSendErrorListIpv6pReceiveFragmentValutazione di Terminologia e Difficoltà
Create tabelle chiare che spiegano i termini di sicurezza, i concetti specifici di Windows e la difficoltà relativa di ogni fase di sfruttamento.
Sviluppo del Proof-of-Concept
Creato e documentato uno script Python basato su Scapy che costruisce i pacchetti intervallati richiesti di Destination Options non validi e frammenti IPv6 per attivare la vulnerabilità.
Guida Completa al Laboratorio Isolato
Scritte istruzioni passo-passo per:
bcdedit /set debug onDimostrazione
Registrato un video che mostra la configurazione completa del laboratorio, l'esecuzione dello script e il crash riuscito.
Revisione della Patch
Documentati gli aggiornamenti cumulativi ufficiali di agosto 2024 (numeri KB) e come la correzione elimina la race condition.
Il bug possiede diverse caratteristiche ad alto rischio:
tcpip.sys (Ring 0). Uno sfruttamento riuscito concede il controllo completo del sistema.La vulnerabilità viene attivata da una combinazione di due header di estensione IPv6:
Header Destination Options (nh=60)
Contiene un tipo di opzione non valido (otype > 0x80). Questo costringe Windows a generare un errore ICMPv6 Parameter Problem.
Header Fragment (nh=44)
Mantiene i pacchetti nella coda di riassemblaggio IPv6 anche dopo che sono stati corrotti.
NET_BUFFER_LIST (NBL).Ipv6pProcessOptions rileva l'opzione non valida e passa l'NBL a IppSendErrorList.IppSendErrorList imposta erroneamente un flag interno e corrompe i pacchetti successivi nello stesso NBL, forzando il loro DataLength a zero.Ipv6pReceiveFragment calcola la dimensione del payload come 0 − HeaderSize, causando un underflow intero (la lunghezza del payload diventa ~4 GB).RtlCopyMemory copia l'enorme lunghezza in underflow → overflow dell'heap del kernel.Un diagramma dettagliato del flusso di dati e un'analisi a livello di funzione sono disponibili nel report completo.
| File | Scopo |
|---|---|
CVE-2024-38063_Writeup.md | Analisi tecnica dettagliata completa e guida completa al laboratorio |
poc_script.py | Proof-of-Concept basato su Scapy |
demo_video.mp4 | Dimostrazione video |
README.md | Questo documento di riepilogo |
Posiziona i tre file di supporto nella radice del repository (o aggiorna i percorsi) affinché rimangano collegati.
bcdedit /set debug on + riavvio) per migliorare l'affidabilità del packet coalescing.2001:db8::20 → attaccante, 2001:db8::10 → bersaglio).I passaggi di configurazione completi, la matrice di risoluzione dei problemi e le istruzioni di pulizia sono documentati nel report.
Microsoft ha rilasciato la correzione come parte degli Aggiornamenti Cumulativi di agosto 2024:
| Sistema Operativo | Numero KB |
|---|---|
| Windows 11 | KB5041580 |
| Windows 10 | KB5041583 |
| Windows Server 2022 | KB5041581 |
| Windows Server 2019 | KB5041579 |
La patch introduce un blocco appropriato attorno ai percorsi di codice interessati, eliminando la race condition che portava all'underflow intero e alla scrittura fuori dai limiti.
Tutti i materiali in questo repository (report, script e video) sono forniti esclusivamente per ricerca sulla sicurezza educativa e difensiva.
Team di Ricerca