Gone in 60 Frames - USB Video Exploitation
Where
Main Stage
DEF CON 34
Duration
34 min
Walks through turning a Linux USB Video class out-of-bounds write and an HID info leak into a reliable root shell from a plugged-in device.
Summary
The talk starts from a 2025 Amnesty International and Google TAG report on an in-the-wild chain of Linux kernel USB bugs used against phones. That report described the vulnerabilities but not how to exploit them. The speakers, from NCC Group, set out to close that gap. They mapped the USB attack surface, noting that desktop distributions enable far more device classes than a typical Android kernel, and explained descriptor hierarchies and class specifications such as HID, UVC and mass storage. They also described their experience building tooling to insert and remove emulated USB devices programmatically.
The middle section covers two bugs. The first is an information disclosure in the HID raw request path, where a malformed buffer makes a length underflow to a very large value, leaking about 64 KB of kernel memory. The team matched recurring kernel text pointers against known offsets to recover the kernel base, bypassing KASLR. The second is an out-of-bounds write in the UVC driver, triggered by a specific quirk. The speakers turned a min/max check into a way to locate a writable 32-bit value near the frame interval pointer, then used it to overwrite the uevent_helper path so that a script on an attacker-supplied USB stick runs as root.
The talk closes with a live demonstration on an Ubuntu desktop. A single emulated USB device leaks the kernel base, performs the write and returns a root reverse shell. The takeaway is that USB is a practical attack vector, and that inexpensive hardware and a small amount of custom tooling are enough to build a working exploit. The speakers point listeners to the full written paper for the details they could not cover.
Materials
Related talks
Main Stage·37 min
Daniel Hillel · Noam Trobishi
Shows how a use-after-free in the NVIDIA Linux kernel module lets an unprivileged container user escape to root on the host.
Main Stage·44 min
Vladimir Tokarev
Shows three ways to write attacker-chosen return addresses into Linux shadow stacks, undermining Intel CET and ARM GCS backward-edge protection.
Main Stage·25 min
Omri Ben Bassat
Shows how sigreturn can bypass ARM64 BTI and PAC on Linux and Android, and how it chains with COOP and coroutine attacks for code execution.


