Vulnerabilidad en Zapscape KVM permite escapar código privilegiado a Linux

Publicado el

Vulnerabilidad en Zapscape KVM

Se ha descubierto una vulnerabilidad en Zapscape, un componente del kernel de Linux, que podría permitir a un atacante con privilegios de kernel dentro de una máquina virtual (VM) L1 escapar del aislamiento de KVM y ejecutar código directamente en el host. Esta situación es especialmente crítica cuando se expone la virtualización anidada a huéspedes no confiables.

La vulnerabilidad, identificada como CVE-2026-64561, afecta la unidad de gestión de memoria (MMU) de KVM/x86, que se encarga de las tablas de páginas utilizadas para la traducción de memoria de los huéspedes anidados. El investigador de seguridad Hyunwoo Kim, quien reveló el fallo, indicó que el camino de explotación demostrado puede ejecutar comandos en el host con privilegios de kernel o root.

La solución del problema ha sido integrada y se recomienda a los administradores de hosts KVM que expongan la virtualización anidada a huéspedes no confiables que actualicen a un kernel estable corregido o a un paquete de proveedor que incluya el parche correspondiente. Por lo general, el privilegio de kernel L1 requerido implica que el huésped tiene acceso como root.

Detalles técnicos

Para los sistemas Intel, también se requiere que ambas longitudes de EPT page-walk (4 y 5) estén expuestas al huésped L1, mientras que AMD no presenta condiciones equivalentes. La vulnerabilidad se debe a un fallo en la verificación de stale-root en la gestión de KVM, lo que puede llevar a un use-after-free. Durante el manejo de fallos de página provocados por el huésped, KVM puede recuperar páginas de MMU e invalidar la página raíz de MMU que aún se está utilizando por el camino de manejo de fallos.

La falta de verificación posterior permite que KVM continúe operando bajo la raíz invalidada. Kim describió el problema como un use-after-free en la ruta recursiva de zap utilizada cuando KVM recupera páginas de sombra. KVM debería verificar si la raíz actual estaba obsoleta antes de hacer disponibles más páginas de MMU. Sin embargo, el proceso de recuperación puede invalidar esa misma raíz, y KVM continúa el camino de fallos, creando páginas de sombra hijas bajo una raíz inválida.

Prueba de concepto

La prueba de concepto pública de Kim utiliza esta vulnerabilidad para crear una cadena completa que genera un archivo de propiedad root llamado /Zapscape en el host con KVM vulnerable. Este objetivo se centra en AMD nested SVM/NPT en Linux 7.1.3 y se recomienda ejecutarlo bajo QEMU TCG para pruebas seguras, dado que QEMU no es el componente vulnerable. Kim aclaró que el fallo reside en el KVM interno y se activa independientemente de la emulación de QEMU.

Aunque Kim ha proporcionado un proof-of-concept, no se ha confirmado que la vulnerabilidad haya sido explotada en entornos reales. Es importante señalar que, aunque el exploit requiere mover las acciones L1 a un módulo de kernel del huésped y adaptar el exploit a la configuración del kernel del host, no se trata de un exploit automatizado que funcione de inmediato en entornos en la nube.

Clasificación y estado de la vulnerabilidad

La National Vulnerability Database clasifica como afectados los kernels de Linux 5.9 y posteriores hasta que se lancen versiones estables corregidas, incluyendo 6.6.148, 6.12.101, 6.18.42, 7.1.6, y 7.2-rc5. Red Hat asignó una puntuación preliminar de CVSS de 7.0 en su aviso, categorizando el problema como CWE-825, que se refiere a la desreferencia de punteros caducados. El estado del paquete varía según el rastreador de cada proveedor de Linux, no solo por las cadenas de versiones ascendentes.

En la actualidad, el rastreador de Debian señala que los paquetes del kernel de bullseye, bookworm, y trixie, junto con sus repositorios de seguridad, son vulnerables, mientras que sid se encuentra corregido en **7.1.6-1.

Kim reportó el problema a security@kernel.org el 11 de julio de 2026. Un parche fue publicado y fusionado el 21 de julio, y la vulnerabilidad se presentó en la lista de linux-distros el 1 de agosto bajo un embargo de cinco días. Se asignó la CVE-2026-64561 el 4 de agosto, con la divulgación pública ocurriendo el 6 de agosto. El arreglo, que se integró como el commit 2abd5287f083, mueve la verificación de stale-root después de make_mmu_pages_available(). Si la recuperación invalida la raíz actual, KVM ahora reinicia el fallo con RET_PF_RETRY en lugar de continuar mapeando o recuperando bajo la raíz inválida.

Esta divulgación sigue el trabajo previo de Kim en KVM, incluido Januscape (CVE-2026-53359), un problema separado de KVM/x86, y ITScape (CVE-2026-46316), una fuga en KVM/arm64.

Fuente

Ver noticia original