
Investigadores de la ETH de Zúrich dieron a conocer mediante una publicación de blog, un nuevo ataque denominado VMScape (CVE-2025-40300), capaz de eludir las protecciones contra Spectre-BTI y comprometer la seguridad en entornos virtualizados. Este método permite a un proceso dentro de una máquina virtual extraer datos confidenciales de los componentes del hipervisor que se ejecutan en el espacio de usuario, como QEMU-KVM.
Lo preocupante es que la memoria de estos componentes puede contener información crítica, como claves de acceso a discos cifrados o restos de datos sensibles de otros sistemas invitados. Los investigadores demostraron la viabilidad del ataque con un exploit que logró filtrar claves de cifrado desde un controlador virtio en QEMU, alcanzando una tasa de fuga de 32 bytes por segundo en sistemas con CPU AMD Zen 4.
Cómo funciona VMScape
VMScape se basa en la manipulación del búfer de destino de ramificación (BTB), utilizado por las CPU para predecir saltos en la ejecución especulativa. Al inyectar objetivos de ramificación manipulados, un atacante puede forzar predicciones erróneas y aprovechar la caché del procesador para deducir información sensible.
Aunque los sistemas modernos ya incluyen defensas contra Spectre-BTI, estas no contemplaban que tanto los procesos invitados como los componentes del hipervisor en espacio de usuario compartieran el mismo nivel de protección. Esto permitió que las entradas del BTB se confundieran entre ambos, rompiendo el aislamiento esperado.
Nuestro análisis sistemático del aislamiento del dominio de protección muestra que los mecanismos actuales son demasiado generales: en todas las CPU AMD Zen, incluida la última Zen 5, el predictor de ramificación no puede distinguir entre la ejecución del host y la del invitado, lo que permite primitivas prácticas de ataque BTI de virtualización cruzada (vBTI). Si bien las CPU recientes de Intel ofrecen un mejor aislamiento, aún existen deficiencias.
Usando una de estas primitivas vBTI, creamos un exploit integral llamado VMScape. VMScape permite que un invitado KVM malicioso filtre información confidencial, como claves de cifrado/descifrado, desde un hipervisor de espacio de usuario como QEMU. A continuación, puede ver una demostración de VMScape ejecutándose en AMD Zen 4.
El costo de seguridad no es menor, ya que el impacto depende de la frecuencia con la que el sistema transfiere control al espacio de usuario. En entornos con dispositivos emulados (por defecto en QEMU), la caída de rendimiento puede llegar hasta un 10 % de media, mientras que en pruebas intensivas como operaciones de disco con virtio se ha observado una degradación de hasta el 51 %. En cargas ligeras, como UnixBench, el impacto apenas llega al 1 %.
Procesadores afectados
La vulnerabilidad afecta a todos los procesadores AMD Zen (incluida la quinta generación), a los procesadores Hygon y a modelos antiguos de Intel, como los basados en Coffee Lake (2017). CPUs más recientes como Cascade Lake y Alder Lake presentan un riesgo parcial. En contraste, las últimas generaciones de Intel incluyen la tecnología eIBRS, que mejora el aislamiento entre host e invitado, aunque no elimina completamente los ataques basados en la manipulación del historial de ramificación (vBHI).
Limitaciones del ataque
Por el momento, VMScape solo ha sido demostrado en sistemas que utilizan KVM con QEMU para la emulación de dispositivos en espacio de usuario. Hipervisores como Xen no se ven afectados, mientras que otros como VMware y Hyper-V aún no han sido evaluados en profundidad.
Mitigaciones en el kernel de Linux
Para contrarrestar este ataque, se han publicado actualizaciones en el kernel de Linux (versiones 6.16.7, 6.12.47, 6.6.106, 6.1.152, 5.15.193 y 5.10.244). La solución implementa el uso de la instrucción IBPB (Indirect Branch Prediction Barrier), que limpia el estado del predictor de ramificación tras cada transición de la máquina virtual hacia el espacio de usuario.
La protección puede activarse mediante la opción de arranque del kernel:
vmscape={off|ibpb|force}
Con ibpb se habilita la mitigación solo en CPUs vulnerables, mientras que force lo aplica en todas las arquitecturas. El estado de la vulnerabilidad y las protecciones activas puede consultarse en:
/sys/devices/system/cpu/vulnerabilities/vmscape
Finalmente, si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.
Continúar leyendo...