Known escape exploits

Published QEMU escapes concentrate in a handful of device models: the legacy floppy controller (VENOM), the network adapters (rtl8139, e1000), the storage controllers (AHCI, SCSI), USB (notably XHCI), and the virtio family. Because these models are shared across every KVM-based product, matching a QEMU version to the affected device guides selecting a usable escape.

2 min di letturaaggiornato il 7 ott 2026florianamette1 contributore
Chiedi al tuo assistente (MCP)Modifica su GitHub

QEMU guest-to-host escapes recur in the same device models, because that is where guest-controlled data is parsed in the QEMU process, and because those models are reused by every KVM-based product, a QEMU bug tends to apply across libvirt, Proxmox, OpenStack, and cloud platforms. The clusters:

  • Floppy controller (FDC): the VENOM out-of-bounds write in the fixed FIFO, present even with no floppy attached.
  • Network adapters: rtl8139 transmit/offload and e1000 descriptor and offload handling have produced out-of-bounds reads and loops.
  • Storage (AHCI, SCSI): AHCI command-list and PRD handling, and SCSI request parsing, with trusted-length transfer bugs.
  • USB (XHCI, EHCI, UHCI): ring and device-context handling, with XHCI the modern hot spot.
  • virtio family: descriptor-chain, indirect-descriptor, and per-device parsing across virtio-net/blk/scsi/gpu.

Using the pattern#

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?

Fingerprint the QEMU version, confirm which device models the VM exposes, and match the version to the advisory for that device. Escapes are version-specific and generally need an information leak to defeat ASLR plus the memory-corruption primitive; the device model determines the primitive.

Exploitation notes#

  • Device configuration decides the surface: the floppy and audio controllers are present by default on PC machine types, while virtio-gpu, specific USB controllers, and NIC models depend on the VM definition.
  • Shared models mean cross-product relevance: an e1000 or XHCI bug in QEMU typically applies to any product that ships that QEMU, and the e1000 model is even shared in spirit with other hypervisors.
  • The mechanisms are on the per-device pages under Guest-to-host escape; this page maps bug clusters to components.

References#