← Volver a artículos
Seguridad· 3 min de lectura

CVE-2026-46316 (ITScape): el primer escape de invitado a host en KVM/arm64

Manos escribiendo en un portátil con información en la pantalla
Foto: Sora Shimazaki · Pexels

El 10 de junio de 2026, el investigador Hyunwoo Kim (@v4bel) publicó en la lista oss-security los detalles de ITScape, registrado como CVE-2026-46316. Es, según su propio autor, la primera investigación de exploit de escape de invitado a host dirigida a KVM en arm64. Una máquina virtual invitada maliciosa puede salir de su aislamiento y ejecutar comandos en el sistema anfitrión con privilegios de kernel, es decir, root.

Qué es

El fallo está en el vGIC-ITS, la emulación del Interrupt Translation Service del controlador de interrupciones virtual que KVM ofrece a los invitados arm64. Se trata de un use-after-free provocado por una condición de carrera en la función vgic_its_invalidate_cache(), ligada a un recuento de referencias defectuoso durante la invalidación de la caché.

El camino del exploit es concreto. El invitado configura dos instancias ITS con entradas de tabla de interrupciones (ITE) que apuntan al mismo objeto. Después, varias vCPU desactivan a la vez la entrega de LPI para forzar llamadas concurrentes a la invalidación de cachés. Esa concurrencia provoca un doble put sobre los objetos vgic_irq, que acaba en use-after-free. A partir de ahí, el invitado rellena la memoria liberada con estructuras de interrupción falsas y, a través de la resolución de entrega de interrupciones, redirige la ejecución del kernel hacia gadgets que escriben en memoria del kernel (apoyándose en orderly_poweroff y mecanismos asociados).

A quién afecta

Afecta al kernel Linux con KVM en arm64 cuando el invitado dispone de vGIC v3. El código vulnerable lleva presente desde el commit 8201d1028caa (abril de 2024) hasta su corrección. El exploit de prueba estaba ajustado a un kernel concreto (Linux v7.1-rc6 aarch64) con direcciones y offsets fijos, pero la vulnerabilidad subyacente no se limita a esa versión.

El riesgo recae sobre todo en infraestructuras de virtualización multiinquilino: nubes públicas basadas en arm64 donde varias VM de distintos clientes comparten un mismo anfitrión. Ahí, un cliente con una VM puede romper la separación que lo aísla del resto. Para servidores arm64 que ejecutan invitados de confianza el riesgo es menor, pero sigue siendo un fallo de severidad crítica.

Gravedad

CVSS 9.3 (crítica). El impacto es máximo: ejecución de código a nivel de kernel en el host y pérdida total del aislamiento invitado-host. No requiere usuario en la VM más allá de controlar el propio sistema invitado, y el ataque es enteramente desde dentro de la máquina virtual.

Mitigación

La corrección se integró en el árbol principal de Linux. Aplica los parches del kernel correspondientes:

  • Commit 13031fb6b8357fbbcded2a7f4cba73e4781ee594 (corrección principal de CVE-2026-46316).
  • Commit 70543358fa08e0f7cebc3447c3b70fe97ad7aaa8 (CVE-2026-46317, relacionado).
  • Commit f2ca45b50d4216c9cc7ffabf50d9ad1932209251 (parche adicional recomendado).

Actualiza el kernel de los anfitriones arm64 que ejecuten invitados con KVM en cuanto tu distribución publique los paquetes con estos cambios. Si gestionas un host multiinquilino, prioriza el despliegue: el aislamiento entre VM es justamente lo que esta vulnerabilidad rompe.

Este caso se parece a otros use-after-free recientes en rutas de virtualización del kernel, como el integer underflow en vsock/virtio (CVE-2026-23069). Si te interesa el detalle de cómo se mantiene el kernel que da soporte a todo esto, tienes la ficha del Kernel Linux.

Fuente