
Exploit de escape de huésped a anfitrión en KVM/x86 (CVE-2026-53359) que aprovecha un use-after-free en la emulación de MMU de sombra. Incluye un PoC para provocar un pánico del kernel del anfitrión y un escape completo en arquitecturas Intel/AMD.

Este documento describe la vulnerabilidad Januscape (CVE-2026-53359) descubierta e informada por Hyunwoo Kim (@v4bel). Es una vulnerabilidad de escape de KVM que permite que un invitado escape al anfitrión en un entorno KVM/x86. Hasta donde se sabe públicamente, esta es la primera investigación de exploit de invitado a anfitrión activable tanto en Intel como en AMD, en lugar de estar limitada a una sola arquitectura.
Januscape es una vulnerabilidad de use-after-free en la emulación de shadow MMU de KVM/x86. Puede desencadenar el error solo con acciones del lado del invitado para corromper la página sombra del kernel del anfitrión, y puede amenazar el aislamiento invitado-anfitrión de los hosts KVM/x86 que aceptan invitados no confiables y exponen virtualización anidada, particularmente las nubes públicas x86 de múltiples inquilinos (GCP, AWS, etc.).
De hecho, Januscape se utilizó con éxito como exploit de día cero en Google kvmCTF.
Para obtener información técnica detallada, consulte aquí.
[!NOTE] Después de informar esta vulnerabilidad a [email protected], el embargo acordado ha terminado, por lo que el exploit se publica en oss-security y este documento de Januscape se publica. Para conocer la cronología de divulgación, consulte el documento de detalle técnico.
Ejecutar el PoC dentro de una máquina virtual invitada puede desencadenar un pánico del kernel del anfitrión. También existe un exploit de escape completo que funciona en un entorno controlado, pero no se publica en este momento y está previsto que se publique en un futuro muy lejano.
En distribuciones como RHEL, /dev/kvm es escribible por todos (0666), por lo que un usuario sin privilegios también podría convertir esta vulnerabilidad en un LPE confiable a root. Dicho esto, hacerlo sería como pagar oro por basura, así que no me molestaré en cubrirlo.
# sudo apt-get install -y build-essential linux-headers-$(uname -r)
# make
[Intel]
# sudo rmmod kvm_intel; sudo insmod poc.ko
[AMD]
# sudo rmmod kvm_amd; sudo insmod poc.ko amd=1
[*] poc step 4/4: race live -- host DoS triggering
...
kernel BUG at arch/x86/kvm/mmu/mmu.c (pte_list_remove)
Comm: qemu-kvm
Este PoC está destinado a proporcionar información precisa. No lo use en sistemas que no esté autorizado a probar.
Januscape (CVE-2026-53359) cubre el rango desde 2032a93d66fa (2010-08-01) hasta 81ccda30b4e8 (2026-06-16).
En otras palabras, esta vulnerabilidad permaneció inactiva durante aproximadamente "16 años".
Hay dos impactos en total:
/dev/kvm es escribible por todos (0666), por lo que un usuario sin privilegios también puede usar esta vulnerabilidad como un LPE confiable para obtener root.Si opera un host KVM x86 que acepta invitados de múltiples inquilinos y admite virtualización anidada, o utiliza una instancia sobre uno, verifique que el parche 81ccda30b4e8 esté aplicado al kernel del anfitrión.
No. La vulnerabilidad solo se desencadena en las arquitecturas Intel y AMD. Dicho esto, si aún no ha parcheado el ITScape (CVE-2026-46316) publicado anteriormente, sus hosts arm64 también son vulnerables, así que aplique el parche de inmediato.
No. A diferencia de las vulnerabilidades de escape de QEMU comúnmente publicadas, Januscape ocurre en el KVM dentro del kernel, por lo que se desencadena independientemente de la emulación de QEMU. Debido a esto, también puede amenazar grandes nubes públicas que implementan y usan su propia pila de virtualización.
Sí. Insertar el módulo requiere privilegios de kernel del invitado. Cuando se le asigna una instancia en una nube pública, normalmente tiene root en su propia máquina virtual, por lo que esto se cumple. En un escenario sin root de invitado, debe encadenarse con un LPE como Dirty Frag.