VFIO: Very Frightening I/O? Taming Wild Guests and their PCIe Config-Space Abuse
summary
Experiments fuzzing PCIe config space across about ten GPUs, NVMe and NICs find single writes into unassigned config offsets repeatedly trigger PCIe errors that escalate to host crashes; reads do not. A fuzzer that reboots on hang and root-cause analysis show the dangerous offsets map to hidden vendor registers. A small prototype VFIO kernel patch blocks reads/writes to unassigned regions with two coarse policies (block reads/writes independently, per-device whitelist) and is discussed upstream; proposal adds a per-device valid-region table like IOMMU validation.
AI-written summary · about
chapters (14)
- 0:00Introduction to VFIO
- 1:46PCIe passthrough basics
- 3:34PCI config space structure
- 5:43Problems with config space writes
- 8:16Device crash observations
- 9:18Root cause analysis findings
- 10:00Fuzzing framework for testing
- 11:02Proposed mitigation approach
- 13:13Discussion on VF and PF devices
- 15:01Trust and production devices
- 16:06Policy for config space access
- 18:16Implementation and community response
- 19:19Vendor responsibility and next steps
- 20:03Q&A and limitations
related talks
39miommufd discussion
49mTransport-level Testing of NVMe Devices using VFIO
42mProtecting the Linux Kernel from Confidential Computing Threats in Virtual Environments
26mFuzzing Host-to Guest Attack Surface in Android Protected KVM
29mVirtual Device Fuzzing Support in QEMU
30mHA-IOV: Applying Hardware-assisted Techniques to IO Virtualization Framework
27m3d Red Pill: A Guest-to-Host Escape on QEMU/KVM Virtio Device
20mHardening Linux guest kernel for CC
