Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
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.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/0xcyberstan/cve-2026-59346-poc
Análisis de VulnerabilidadesExplotaciónVirtualización de SeguridadSeguridad de Hardware e IoTPapers e InvestigaciónExplotación de Binarios
GitHub0xcyberstan/cve-2026-59346-poc

CVE-2026-59346-POC

PoC para CVE-2026-59346 - desbordamiento de entero de 32 bits en la ruta de segmentación TSO de VMXNET3 de VMware, fallo de guest a host.

Ver Repositorio
hace 22h 3mAú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-59346 — Desbordamiento de entero en TSO de VMXNET3 (VMware Workstation / Fusion)

Prueba de concepto de un desbordamiento de entero de 32 bits en la ruta de segmentación TSO de la NIC virtual VMXNET3 en vmware-vmx, alcanzable desde una VM invitada.

Este problema está parcheado. La PoC se publica únicamente con fines de investigación y defensivos. Provoca un fallo (SIGSEGV) en el lado del host y no intenta ejecutar código.

CVECVE-2026-59346
Análisiscyberstan.co.uk/vmxnet3-tso-overflow
Aviso de ZDIZDI-26-647
Aviso del proveedorVMSA-2026-0007
CVSSv39.3 (proveedor) / 7.5 (ZDI)
Corregido enWorkstation / Fusion 26H1u1
Reportado a través deTrend Micro Zero Day Initiative

Resumen

La rutina de segmentación TSO de VMXNET3 calcula el tamaño de su asignación como seg_count * per_seg_size usando un imul de 32 bits. Cuando el producto real supera 2^32, el resultado se desborda y el asignador recibe el valor truncado. El bucle de segmentación que sigue está controlado por seg_count, no por el tamaño de la asignación, por lo que escribe per_seg_size bytes por segmento en un búfer dimensionado a partir del producto desbordado.

Una corrección anterior para esta ruta de código (CVE-2025-41236) añadió comprobaciones de límites que rechazan paquetes donde MSS, per_seg_size o su suma superan 9216. Esas comprobaciones restringen los campos individuales del descriptor, pero nunca el producto, que es el valor que realmente se desborda. Parámetros muy por debajo del límite de 9216 siguen alcanzando el desbordamiento.

Análisis completo de la causa raíz, desensamblado anotado y geometría del heap: cyberstan.co.uk/vmxnet3-tso-overflow.

Impacto

Un usuario invitado con privilegios suficientes para escribir descriptores TX en bruto puede provocar una escritura fuera de límites de gran tamaño en el proceso vmware-vmx del host con contenido extraído del paquete proporcionado por el invitado. En esta PoC la escritura continúa hasta alcanzar memoria no mapeada y el proceso del host muere con SIGSEGV, apagando la VM.

El proveedor calificó el problema como susceptible de permitir la ejecución de código arbitrario en el contexto del hipervisor; la PoC publicada demuestra únicamente la violación de seguridad de memoria y se detiene en el fallo.

Productos afectados

Todos los productos de hipervisor de escritorio de VMware que comparten el backend VMXNET3 de vmware-vmx: Workstation, Fusion y Player. VMXNET3 es el adaptador predeterminado para las VM invitadas modernas. Consulte VMSA-2026-0007 para obtener la lista autorizada de versiones afectadas.

Compilación y ejecución

La PoC es un módulo del kernel de Linux que se ejecuta dentro del invitado. Escribe directamente los descriptores del anillo TX de VMXNET3, omitiendo la lógica TSO del controlador en el kernel, y luego activa el registro MMIO del doorbell.

root@kitploit:~
# Inside the guest VM, as root:

# Kernel headers
apk add linux-virt-dev                        # Alpine
# apt install linux-headers-$(uname -r)       # Debian / Ubuntu

make
insmod vmxnet3_tso_trigger.ko

El proceso vmware-vmx del host fallará y el invitado se apagará. Espere perder cualquier estado no guardado en la VM, y tome una instantánea primero si desea volver a ejecutarla.

Antes de empezar

El invitado necesita un adaptador VMXNET3. Compruébelo con lspci | grep -i vmxnet o confirme ethernet0.virtualDev = "vmxnet3" en el archivo .vmx. El módulo se comunica directamente con la NIC, por lo que la interfaz debe estar activa y vinculada al controlador vmxnet3.

Parámetros del módulo

ParámetroPredeterminadoPropósito
ifnameeth0Interfaz respaldada por el adaptador VMXNET3
dryrun01 escribe los descriptores pero omite el doorbell, por lo que no se activa nada
wait_ms0Retardo en ms entre la configuración del descriptor y la escritura del doorbell
txwarm0Paquetes TSO que se envían por el anillo antes del paquete de desbordamiento
warmup0Asignaciones del lado del host que se emiten antes de activar
freechunk0Asignaciones del mismo tamaño que se crean y se liberan parcialmente antes de activar

warmup y freechunk modelan el heap del host antes de que se produzca el desbordamiento. No son necesarios para reproducir el fallo; déjelos en cero a menos que esté investigando la disposición de las asignaciones.

Secuencia sugerida

Comience con una ejecución en seco para confirmar que el módulo encuentra el anillo y calcula los parámetros, sin tocar el host:

root@kitploit:~
insmod vmxnet3_tso_trigger.ko dryrun=1
dmesg | tail -20
rmmod vmxnet3_tso_trigger

La salida esperada incluye la geometría calculada y el anillo TX localizado:

root@kitploit:~
tso_v8: per_seg=6240 (0x1860), HDR_TOTAL=6222, MSS=1
tso_v8: PARAMS: alloc=... overflow=... seg_count=... paylen=...
tso_v8: ring at priv+N: base=... sz=... n2f=... gen=...
tso_v8: DRYRUN -- descriptors written but NOT triggered

Si no se encuentra el anillo, el módulo registra TX ring not found y aborta. Eso suele significar una diferencia en la disposición del controlador; la heurística de búsqueda en find_tx_ring() necesita ajustarse para ese kernel.

Luego actívelo de verdad, en una interfaz no predeterminada si es necesario:

root@kitploit:~
insmod vmxnet3_tso_trigger.ko ifname=eth1

El invitado muere junto con el proceso del host, por lo que es posible que los últimos mensajes no lleguen al disco. Para capturarlos, observe la consola en lugar de confiar en el journal:

root@kitploit:~
dmesg -w

Confirme el fallo desde el lado del host en el vmware.log de la VM, que mostrará un PANIC: Unexpected signal: 11 con un backtrace a través del asignador en el hilo vcpu-0.

Si no ocurre nada

  • Host parcheado. Cualquier versión 26H1u1 o posterior rechaza el paquete. El módulo registrará mensajes con normalidad y la VM seguirá ejecutándose.
  • Interfaz incorrecta. ifname debe nombrar el dispositivo VMXNET3, no un puente ni un adaptador e1000 secundario.
  • Anillo demasiado pequeño. El módulo aborta con need N entries but ring has M slots si el anillo TX no puede contener la cadena de descriptores.

Entorno probado

HostUbuntu 24.04 LTS, kernel 6.17.0, glibc 2.39
HipervisorVMware Workstation Pro 25.0.1 (build 25219725)
InvitadoAlpine Linux, kernel 6.12, NIC VMXNET3

Los desplazamientos de símbolos a los que se hace referencia en el análisis son específicos de la build 25219725. El patrón vulnerable es el mismo en todas las builds, pero los desplazamientos variarán.

Contenido

root@kitploit:~
vmxnet3_tso_trigger.c   trigger module
Makefile                   out-of-tree kernel module build

Corrección

La multiplicación debe realizarse en 64 bits, con el resultado acotado antes de que llegue al asignador. Limitar los campos individuales del descriptor no es suficiente, ya que el desbordamiento es una propiedad del producto y no de ninguno de los operandos.

Cronología de divulgación

FechaEvento
2026Reportado a Trend Micro ZDI
Sept 2026Parcheado por Broadcom en 26H1u1 (VMSA-2026-0007)
Sept 2026Publicado ZDI-26-647

Uso

Publicado bajo divulgación coordinada, después de que se distribuyera una corrección. Ejecútelo solo contra sistemas que posea o esté autorizado a probar. Provocará el fallo del proceso del hipervisor del host, así que no lo apunte a nada que le importe.

Autor

Stan S - cyberstan.co.uk · @0xCyberstan

Descargar herramienta