Les évasions publiées de Xen sont suivies dans la série Xen Security Advisory (XSA) et se regroupent dans les interfaces qu'un invité peut atteindre :
- Hypercalls : les hypercalls de gestion mémoire et de table de pages (
mmu_update,mmuext_op,memory_op) ont porté à plusieurs reprises des bugs qui permettent à un invité de mapper des pages qu'il ne possède pas ou de corrompre l'état de l'hyperviseur, la classe la plus grave car elle frappe l'hyperviseur. - Grant tables : la gestion des opérations map/copy/transfer et surtout le cycle de vie du comptage de références ont produit des use-after-free inter-domaines et des accès hors limites.
- Backends PV : l'analyse des requêtes par blkback et netback dans dom0, donnant l'exécution de code dans dom0.
- Émulation (HVM) : pour les invités HVM, l'émulation de périphériques (QEMU dans un stub domain ou dom0) ajoute par-dessus la surface du modèle de périphériques QEMU.
Utiliser le schéma#
# fingerprint the Xen version (decides which XSA applies)
xl info 2>/dev/null | grep -i xen_version
cat /sys/hypervisor/version/major /sys/hypervisor/version/minor 2>/dev/null
# guest type shapes the surface
cat /sys/hypervisor/properties/capabilities 2>/dev/null # PV/PVH/HVM
Identifiez la version de Xen et le type d'invité (PV, PVH, HVM), puis faites correspondre à la XSA pour l'interface atteignable. Les invités PV exposent la plus large surface d'hypercalls et de grants ; les invités HVM ajoutent la surface d'émulation QEMU. Les évasions sont spécifiques à la version.
Notes d'exploitation#
- Le type d'invité est décisif : PV maximise la surface d'hypercall/de grant, HVM déplace le poids vers l'émulation de périphériques QEMU (de sorte que les regroupements QEMU s'appliquent aussi aux invités Xen HVM), et PVH se situe entre les deux.
- Les bugs d'hypercall ont l'impact le plus fort (niveau hyperviseur) ; les bugs de grant et de backend atteignent dom0 ou des domaines pairs.
- Les mécanismes se trouvent sur les pages par surface sous Évasion invité-vers-hôte ; cette page associe les regroupements XSA aux composants.