CVE-2024-38063 — Vulnerabilidad en la pila IPv6 de Windows (Análisis y PoC)
-red)
Análisis técnico y Prueba de Concepto (PoC) para CVE-2024-38063, una vulnerabilidad crítica de Ejecución Remota de Código (RCE) en la pila IPv6 de Windows (tcpip.sys). Descubierta por KunLun Lab, este problema es zero-click, lo que significa que puede ser desencadenado por paquetes especialmente diseñados sin interacción del usuario.
Contexto académico: Proyecto final para el curso "Fundamentos de Seguridad de Redes".
Demostración
Tabla de Contenidos
Descripción general
Este repositorio contiene:
- un análisis estructurado de la vulnerabilidad,
- una demostración de PoC usando Scapy,
- y documentación completa del curso e instrucciones de laboratorio.
Resumen técnico
El problema central es un desbordamiento negativo de entero (integer underflow) en tcpip.sys durante el análisis de cabeceras de extensión IPv6 dentro de tráfico fragmentado.
- Fallo lógico: la validación de la longitud de la cabecera falla durante el cálculo.
- Corrupción de memoria: el underflow conduce a un desbordamiento de búfer y a escrituras de memoria inseguras.
- Impacto: potencial BSOD y RCE bajo condiciones específicas.
Contenido del repositorio
- CVE-2024-38063 Analysis.pdf — Diapositivas que cubren antecedentes, causa raíz y mitigaciones.
- CVE-2024-38063.py — Script de PoC basado en Scapy (demuestra el comportamiento de caída).
- WriteUP.pdf — Documento completo, requisitos del laboratorio y notas de ejecución.
Configuración del laboratorio
Para reproducir el entorno en un laboratorio controlado y educativo:
- Víctima: Windows 10/11 anterior al parche de agosto de 2024 / 24H2, con IPv6 habilitado.
- Atacante: VM Linux con Python 3, Scapy.
- Red: conectividad IPv6 entre ambas máquinas en el mismo segmento de red.
Lógica de la PoC (alto nivel)
La PoC elabora una secuencia de paquetes para desencadenar el underflow:
- Destination Options con un tipo de opción no reconocido para forzar las rutas de manejo de errores.
- Fragmento 1 para iniciar la fragmentación y proporcionar la carga útil.
- Fragmento 2 para terminar la secuencia.
El script repite estos lotes variando el Hop Limit para aumentar la probabilidad de encontrar la ruta de análisis vulnerable.
Uso
- Identifique la dirección IPv6 objetivo.
- Actualice
ip_addr e iface en CVE-2024-38063.py.
- Ejecute el script desde la máquina atacante:
pip install scapy
pip install getmac
python3 CVE-2024-38063.py
Si el objetivo es vulnerable, normalmente se produce un BSOD en un plazo de 30 a 60 segundos mientras el kernel procesa encabezados malformados.
Mitigación
- Aplicar actualizaciones de seguridad: Parche de Microsoft (13 de agosto de 2024).
- Deshabilitar IPv6 donde no sea posible aplicar el parche.
- Filtrado en el firewall: bloquear paquetes IPv6 fragmentados en el perímetro.
Lo que aprendí
- Arquitectura del encabezado IPv6: Profundicé mi comprensión del encadenamiento de encabezados siguientes (Hop-by-Hop, Destination Options y Fragmentation), y de cómo la complejidad de los encabezados anidados amplía la superficie de ataque de red.
- Ingesta de paquetes a nivel de kernel (
tcpip.sys): Observé de primera mano el procesamiento de paquetes en Ring 0. Dado que el reensamblado de fragmentos y el análisis sintáctico ocurren en lo profundo del controlador de red antes de llegar a los sockets en modo usuario, las fallas en esta capa eluden los controles de software a nivel de host y permiten la explotación sin clic.
- Mecánica de la vulnerabilidad de causa raíz: Analicé cómo un desbordamiento negativo de enteros en el cálculo de la longitud del encabezado corrompe los desplazamientos de puntero, convirtiendo un fallo aritmético en escrituras fuera de límites en memoria del kernel y pánicos del sistema (BSOD).
- Creación de paquetes personalizados con Scapy: Adquirí experiencia práctica construyendo paquetes no conformes con RFC, inyectando TLVs (Type-Length-Value) malformados en Destination Options y secuenciando fragmentos para forzar el manejo de errores de casos límite en el kernel objetivo.
Descargo de responsabilidad
Este proyecto es solo para fines educativos y de investigación. Las pruebas o el acceso no autorizados a sistemas que no son de su propiedad o para los que no cuenta con permiso explícito para evaluar son ilegales. Los autores no asumen ninguna responsabilidad por el uso indebido.