NecoFuzz: Effective Fuzzing of Nested Virtualization via Fuzz-Harness Virtual Machines
Reima Ishii, Takaaki Fukai, Takahiro Shinagawa
TL;DR
NecoFuzz presents the first framework specifically designed to fuzz nested virtualization by generating complete fuzz-harness VMs guided by hardware specifications, thereby targeting the security-critical boundary between valid and invalid VM states. It combines a VM execution harness, VM state validator, and vCPU configurator to explore diverse, near-boundary configurations on Intel VT-x and AMD-V, achieving significant code coverage gains and uncovering several previously unknown vulnerabilities across KVM, Xen, and VirtualBox. The approach demonstrates hypervisor-independence and practical effectiveness, suggesting a new, scalable direction for hardening cloud infrastructure against nested-virtualization threats. Overall, NecoFuzz provides a practical, hardware-grounded methodology for systematically probing a previously under-explored attack surface with tangible security improvements.
Abstract
Nested virtualization is now widely supported by major cloud vendors, allowing users to leverage virtualization-based technologies in the cloud. However, supporting nested virtualization significantly increases host hypervisor complexity and introduces a new attack surface in cloud platforms. While many prior studies have explored hypervisor fuzzing, none has explicitly addressed nested virtualization due to the challenge of generating effective virtual machine (VM) instances with a vast state space as fuzzing inputs. We present NecoFuzz, the first fuzzing framework that systematically targets nested virtualization-specific logic in hypervisors. NecoFuzz synthesizes executable fuzz-harness VMs with internal states near the boundary between valid and invalid, guided by an approximate model of hardware-assisted virtualization specifications. Since vulnerabilities in nested virtualization often stem from incorrect handling of unexpected VM states, this specification-guided, boundary-oriented generation significantly improves coverage of security-critical code across different hypervisors. We implemented NecoFuzz on Intel VT-x and AMD-V by extending AFL++ to support fuzz-harness VMs. NecoFuzz achieved 84.7% and 74.2% code coverage for nested virtualization-specific code on Intel VT-x and AMD-V, respectively, and uncovered six previously unknown vulnerabilities across three hypervisors, including two assigned CVEs.
