Évasion guest-to-host

S'évader d'un invité ESXi revient à corrompre le processus vmx côté hôte qui émule les périphériques de la machine virtuelle. La surface accessible est l'ensemble des périphériques émulés qu'un invité peut piloter : le périphérique graphique SVGA 3D, les contrôleurs USB, les NIC virtuelles et les canaux de contrôle backdoor et VMCI, chacun analysant des données contrôlées par l'invité dans le processus hôte.

1 min de lecturemis à jour le 13 oct. 2026florianamette1 contributeur
Demander à votre assistant (MCP)Modifier sur GitHub

Une machine virtuelle ESXi s'exécute sous un processus vmx en espace utilisateur propre à chaque VM sur l'hôte qui émule les périphériques de la VM, soutenu par l'hyperviseur vmkernel. Un invité s'évade en faisant manipuler incorrectement par vmx des données qu'il contrôle, donc la cible est le code d'émulation de périphériques : le périphérique graphique SVGA avec son flux de commandes 3D, les contrôleurs USB émulés, les cartes réseau virtuelles et les canaux de contrôle backdoor et VMCI. Chacun lit des structures fournies par l'invité (FIFO de commandes, descripteurs de transfert, anneaux, messages RPC) dans le processus hôte, et une faille de sûreté mémoire y donne l'exécution de code dans vmx, qui s'exécute avec un privilège suffisant pour atteindre l'hôte.

La surface d'évasion qu'un invité peut atteindre de l'intérieur :

bash
# enumerate the emulated hardware the VM exposes (from a Linux guest)
lspci -nn                       # SVGA II, vmxnet3/e1000, USB (UHCI/EHCI/XHCI), VMCI
lsusb; ls /sys/bus/pci/devices  # USB controllers and PCI functions
dmesg | grep -iE 'vmwgfx|vmxnet|vmw_vmci'   # loaded VMware guest drivers

Sous-sujets#

Références#