Une VM VirtualBox s'exécute à l'intérieur d'un processus hôte qui émule ses périphériques, donc s'évader revient à faire manipuler incorrectement par ce processus des données contrôlées par l'invité. La surface des périphériques est large : le chemin d'accélération 3D (utilisé par les Guest Additions pour les graphismes accélérés), les contrôleurs audio émulés, les cartes réseau et les contrôleurs USB, chacun lisant côté hôte les écritures de registres et les descripteurs DMA de l'invité. L'exécution de code atterrit dans le processus VM, qui s'exécute avec les privilèges de l'utilisateur ayant démarré la VM. L'intégration Guest Additions (dossiers partagés, presse-papiers) ajoute la surface des services HGCM, traitée séparément.
# the emulated devices visible in the guest (escape surface)
lspci -nn; lsusb
dmesg | grep -iE 'e1000|pcnet|ac97|hda|ohci|ehci|xhci'
Sous-sujets#
- Accélération 3D : le chemin de commandes des graphismes accélérés.
- Périphériques audio : les contrôleurs AC97 et HD Audio émulés.
- Cartes réseau : les modèles e1000, PCnet et virtio-net.
- Contrôleurs USB : les contrôleurs OHCI, EHCI et xHCI.