
Analyse technique approfondie et preuve de concept pour CVE-2024-38063, une RCE critique du noyau IPv6 de Windows. Comprend une décomposition de la cause racine, un PoC basé sur Scapy, et un guide de laboratoire isolé pour la recherche pédagogique.
Ce dépôt contient nos recherches et analyses sur CVE-2024-38063, une vulnérabilité critique dans la pile TCP/IP de Windows.
CVE signifie Common Vulnerabilities and Exposures. Il s'agit d'un dictionnaire standardisé des failles de cybersécurité publiquement divulguées, maintenu par la MITRE Corporation. Chaque entrée reçoit un identifiant unique au format CVE-ANNÉE-NUMÉRO.
| Champ | Détail |
|---|
| ID CVE | CVE-2024-38063 |
| Surnom | The IPv6 Kernel Killer |
| Sévérité | Critique (CVSS 9.8 / 10) |
| Type | Exécution de code à distance (RCE) |
| Emplacement | Pile TCP/IP Windows (tcpip.sys) |
| Date du correctif | Août 2024 (Patch Tuesday de Microsoft) |
| Découvert par | ZeQiao Wu (NSFOCUS TIANQI LAB) |
Un score CVSS de 9.8 indique un problème de sévérité quasi maximale nécessitant un correctif immédiat.
Au cours de cette recherche, nous avons effectué les travaux suivants :
Étude de fond sur les CVE
Explication de ce qu'est une CVE, comment les identifiants sont attribués par MITRE, et quelles informations contient un enregistrement CVE typique.
Caractérisation de la vulnérabilité
Documentation des raisons pour lesquelles CVE-2024-38063 est considérée comme un bug « graal » : aucune authentification, aucune interaction utilisateur, potentiel de propagation autonome (wormable), IPv6 activé par défaut, et impact en mode noyau.
Fondamentaux d'IPv6
Couverture des différences entre IPv4 et IPv6, du rôle des en-têtes d'extension, et des raisons pour lesquelles la fragmentation fonctionne différemment en IPv6.
Analyse approfondie de la cause racine
Traçage du chemin complet des paquets dans tcpip.sys :
NET_BUFFER_LIST (NBL)Ipv6pProcessOptions et IppSendErrorListIpv6pReceiveFragmentÉvaluation de la terminologie et de la difficulté
Création de tableaux clairs expliquant les termes de sécurité, les concepts spécifiques à Windows, et la difficulté relative de chaque étape d'exploitation.
Développement d'une preuve de concept
Création et documentation d'un script Python basé sur Scapy qui construit les paquets invalides Destination Options entrelacés et les fragments IPv6 requis pour déclencher la vulnérabilité.
Guide complet de laboratoire isolé
Rédaction d'instructions pas à pas pour :
bcdedit /set debug onDémonstration
Enregistrement d'une vidéo montrant la configuration complète du laboratoire, l'exécution du script et le crash réussi.
Examen du correctif
Documentation des mises à jour cumulatives officielles d'août 2024 (numéros KB) et de la manière dont le correctif élimine la condition de concurrence.
Le bug possède plusieurs caractéristiques à haut risque :
tcpip.sys (Ring 0). Une exploitation réussie accorde un contrôle total du système.La vulnérabilité est déclenchée par une combinaison de deux en-têtes d'extension IPv6 :
En-tête Destination Options (nh=60)
Contient un type d'option invalide (otype > 0x80). Cela force Windows à générer une erreur ICMPv6 Parameter Problem.
En-tête Fragment (nh=44)
Maintient les paquets dans la file de réassemblage IPv6 même après leur corruption.
NET_BUFFER_LIST (NBL).Ipv6pProcessOptions détecte l'option invalide et transmet le NBL à IppSendErrorList.IppSendErrorList définit incorrectement un indicateur interne et corrompt les paquets suivants du même NBL, forçant leur DataLength à zéro.Ipv6pReceiveFragment calcule la taille de la charge utile comme 0 − HeaderSize, provoquant un sous-dépassement d'entier (la longueur de la charge utile devient ~4 Go).RtlCopyMemory copie la longueur massive sous-dépassée → débordement de tas du noyau.Un diagramme détaillé du flux de données et une analyse au niveau des fonctions sont disponibles dans le rapport complet.
| Fichier | Objectif |
|---|---|
CVE-2024-38063_Writeup.md | Analyse technique détaillée complète et guide de laboratoire complet |
poc_script.py | Preuve de concept basée sur Scapy |
demo_video.mp4 | Démonstration vidéo |
README.md | Ce document de synthèse |
Placez les trois fichiers de support à la racine du dépôt (ou mettez à jour les chemins) afin qu'ils restent liés.
bcdedit /set debug on + redémarrage) pour améliorer la fiabilité de la coalescence des paquets.2001:db8::20 → attaquant, 2001:db8::10 → cible).Les étapes de configuration complètes, la matrice de dépannage et les instructions de nettoyage sont documentées dans le rapport.
Microsoft a publié le correctif dans le cadre des mises à jour cumulatives d'août 2024 :
| Système d'exploitation | Numéro KB |
|---|---|
| Windows 11 | KB5041580 |
| Windows 10 | KB5041583 |
| Windows Server 2022 | KB5041581 |
| Windows Server 2019 | KB5041579 |
Le correctif introduit un verrouillage approprié autour des chemins de code affectés, éliminant la condition de concurrence qui conduisait au sous-dépassement d'entier et à l'écriture hors limites.
Tous les matériels de ce dépôt (rapport, script et vidéo) sont fournis exclusivement à des fins de recherche en sécurité éducative et défensive.
Équipe de recherche