Parallels Desktop guest-to-host escapes, a recurring Pwn2Own category, cluster in the same places as other desktop hypervisors:
- Graphics and 3D: the accelerated-graphics command/surface parsing, the most productive device surface.
- Other emulated devices: network, USB, and storage device-model handling.
- Parallels Tools integration: shared folders, clipboard, and drag-and-drop request parsing over the guest-host channels.
Using the pattern#
# fingerprint the Parallels Desktop version (host side) to map to the advisory
# (from the host: Parallels Desktop > About, or prlctl --version)
# from the guest, confirm which surfaces are present/enabled
lspci -nn 2>/dev/null; lsusb 2>/dev/null; lsmod 2>/dev/null | grep -i prl
mount 2>/dev/null | grep -i prl_fs # shared folders enabled
Fingerprint the Parallels Desktop version, confirm which device models and integration features the VM exposes (3D on, shared folders, clipboard/DnD), and match to the Parallels security update for that component. Escapes are version-specific and land in a Parallels host process on macOS, generally needing a leak plus the corruption primitive.
Exploitation notes#
- Configuration decides the surface: 3D acceleration and the Tools integration features are per-VM settings, so what is reachable depends on the VM definition.
- The graphics/3D path and the Tools channels are the two hot spots, mirroring VMware (SVGA + GuestRPC/HGFS) and VirtualBox (3D + HGCM); the mechanisms transfer.
- The per-surface detail is on the guest-to-host escape and shared-folder and clipboard pages; this maps clusters to components.