Exploits d'évasion connus

Les évasions QEMU publiées se concentrent dans une poignée de modèles de périphériques : le contrôleur de disquette legacy (VENOM), les adaptateurs réseau (rtl8139, e1000), les contrôleurs de stockage (AHCI, SCSI), l'USB (notamment XHCI) et la famille virtio. Parce que ces modèles sont partagés entre chaque produit basé sur KVM, faire correspondre une version QEMU au périphérique affecté guide le choix d'une évasion utilisable.

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

Les évasions guest-to-host de QEMU se répètent dans les mêmes modèles de périphériques, car c'est là que les données contrôlées par l'invité sont analysées dans le processus QEMU, et parce que ces modèles sont réutilisés par chaque produit basé sur KVM, un bug QEMU tend à s'appliquer à libvirt, Proxmox, OpenStack et aux plateformes cloud. Les groupes :

  • Contrôleur de disquette (FDC) : l'écriture hors limites VENOM dans la FIFO de taille fixe, présente même sans disquette attachée.
  • Adaptateurs réseau : la gestion de la transmission/offload rtl8139 et la gestion des descripteurs et de l'offload e1000 ont produit des lectures hors limites et des boucles.
  • Stockage (AHCI, SCSI) : la gestion de la liste de commandes et des PRD AHCI, et l'analyse des requêtes SCSI, avec des bugs de transfert à longueur de confiance.
  • USB (XHCI, EHCI, UHCI) : la gestion des anneaux et des contextes de périphérique, XHCI étant le point chaud moderne.
  • Famille virtio : l'analyse de chaîne de descripteurs, de descripteur indirect et par périphérique à travers virtio-net/blk/scsi/gpu.

Utiliser le modèle#

bash
# fingerprint the QEMU version (decides which device bug applies)
qemu-system-x86_64 --version 2>/dev/null; virsh version 2>/dev/null
# from the guest, confirm which vulnerable models are present
lspci -nn; lsusb; cat /proc/ioports | grep -i fd    # floppy present?

Identifiez la version de QEMU, confirmez quels modèles de périphériques la VM expose, et faites correspondre la version à l'avis de sécurité de ce périphérique. Les évasions sont spécifiques à une version et nécessitent généralement une fuite d'information pour vaincre l'ASLR plus la primitive de corruption mémoire ; le modèle de périphérique détermine la primitive.

Notes d'exploitation#

  • La configuration du périphérique décide de la surface : les contrôleurs de disquette et audio sont présents par défaut sur les types de machine PC, tandis que virtio-gpu, certains contrôleurs USB et les modèles de NIC dépendent de la définition de la VM.
  • Les modèles partagés impliquent une pertinence inter-produits : un bug e1000 ou XHCI dans QEMU s'applique généralement à tout produit qui embarque ce QEMU, et le modèle e1000 est même partagé dans l'esprit avec d'autres hyperviseurs.
  • Les mécanismes sont sur les pages par périphérique sous Évasion guest-to-host ; cette page associe les groupes de bugs aux composants.

Références#