Google Project Zero: 0-Click Exploit Chain for Pixel 10 — From Dolby Decoder to Full Kernel Root

Quick Summary:
  • What: Google Project Zero published a full 0-click exploit chain for the Pixel 10, going from zero-click context to kernel root
  • Entry point: CVE-2025-54957 — a Dolby audio decoder vulnerability exploitable without any user interaction
  • Privilege escalation: A VPU driver (WAVE677DV for Tensor G5) with a trivially exploitable mmap bug that maps arbitrary physical memory into userspace
  • Impact: 5 lines of code for arbitrary kernel read-write; full exploit took less than a day to write
  • Key quote: "This is the holy grail of kernel vulnerabilities"
  • Patch: Fixed in February 2026 Pixel security bulletin, 71 days after report — fastest Android driver patch ever for Project Zero

Google's Project Zero team has published a detailed technical write-up of a complete 0-click exploit chain targeting the Pixel 10 — Google's latest flagship phone running on the Tensor G5 chip. The chain demonstrates that an attacker can go from zero user interaction to full kernel code execution by chaining two vulnerabilities: one in the Dolby audio decoder and another in the Video Processing Unit (VPU) driver.

This research builds on Project Zero's earlier Pixel 9 exploit chain, which achieved the same goal using the Dolby bug paired with a different privilege escalation via the BigWave driver. With BigWave absent on Pixel 10, the team found something even more dangerous hiding in the VPU driver.

The Entry Point: Dolby Decoder (CVE-2025-54957)

The first link in the chain is CVE-2025-54957, a vulnerability in the Dolby audio decoder that exists across all Android devices. This was the same bug used in the Pixel 9 chain, patched in January 2026. For the Pixel 10 exploit, the team updated the exploit for the new device — mostly by adjusting offsets for the library version shipped on Pixel 10.

The main challenge was that Pixel 10 uses RET PAC (Pointer Authentication Code with return signing) instead of the traditional -fstack-protector. This meant __stack_chk_fail couldn't be overwritten as a code target. The workaround: overwriting dap_cpdp_init — initialization code that runs once during decoder setup and never again, making it safe to clobber.

This exploit gives the attacker code execution within the mediacodec process — still confined by SELinux and lacking root access. The real magic happens in the next stage.

The Holy Grail: VPU Driver Vulnerability

When porting the exploit chain to Pixel 10, Project Zero discovered that the BigWave driver used for privilege escalation on Pixel 9 doesn't ship on Pixel 10. However, a new driver appeared at /dev/vpu in the mediacodec SELinux context.

This driver controls the Chips&Media Wave677DV video processing silicon on the Tensor G5 chip. Developed by the same team that built BigWave, it accelerates video decoding. Project Zero spent just 2 hours auditing the driver before finding what they describe as an exceptional vulnerability.

Unlike the upstream Linux driver for the older WAVE521C chip (which integrates with V4L2, the standard Video for Linux API), the Pixel's WAVE677DV driver directly exposes the chip's hardware interface to userspace, including letting userspace map the chip's MMIO register interface.

The Bug: Unbounded mmap

The vulnerability is breathtakingly simple. Here's the vulnerable vpu_mmap function:

static int vpu_mmap(struct file *fp, struct vm_area_struct *vm)
{
    unsigned long pfn;
    struct vpu_core *core =
        container_of(fp->f_inode->i_cdev, struct vpu_core, cdev);

    vm_flags_set(vm, VM_IO | VM_DONTEXPAND | VM_DONTDUMP);
    vm->vm_page_prot = pgprot_device(vm->vm_page_prot);
    pfn = core->paddr >> PAGE_SHIFT;

    return remap_pfn_range(vm, vm->vm_start, pfn,
        vm->vm_end - vm->vm_start, vm->vm_page_prot)
        ? -EAGAIN : 0;
}

The problem: remap_pfn_range is called based on the size of the VMA (Virtual Memory Area), not bounded to the actual size of the VPU register region. By specifying a size larger than the register region in an mmap syscall, an attacker can map as much physical memory as they want into userspace, starting from the physical address of the VPU register region.

Since the kernel image (including .text and .data) sits at a higher physical address than the VPU register region, the attacker can read and modify the entire kernel. And because the kernel is always at the same physical address on Pixel (defeating KASLR by design), the offset from VPU to kernel is a known constant — no scanning needed.

5 Lines of Code, Full Kernel Access

With this bug, achieving arbitrary kernel read-write required just 5 lines of code. A full working exploit took less than a day to develop. The attacker can overwrite any kernel function to gain code execution — or any other primitive they desire.

This is as close to a "game over" vulnerability as you can get in kernel security.

The Patch: 71 Days — A Record for Android

Project Zero reported the VPU vulnerability on November 24, 2025. Android VRP rated it High severity — an improvement over the BigWave bug from the Pixel 9 chain, which was initially rated as Moderate despite identical security impact.

The vulnerability was patched in the February 2026 Pixel security bulletin, just 71 days after the initial report. This is the fastest an Android driver vulnerability reported by Project Zero has ever been remediated — a notable milestone given that previous similar bugs routinely exceeded the 90-day disclosure deadline.

What This Means for Android Security

This research highlights both progress and persistent problems in Android's driver security:

The Good

The Bad

Practical Takeaways

For Pixel Users

For Android Driver Developers

For Security Researchers

The Bigger Picture

Project Zero's conclusion is measured but pointed: while Android's patch pipeline is improving, the quality of driver code remains a systemic concern. When the same team ships a trivially exploitable mmap bug 5 months after their previous driver was audited and patched, it suggests the problem isn't individual mistakes — it's development practices.

The Pixel 10 exploit chain is a masterclass in modern mobile exploitation: a zero-click entry through a media codec, pivoting to kernel access through a carelessly written driver, all achievable in under a day of work. It's also a reminder that the most dangerous vulnerabilities are often the simplest ones.

References

Disclosure: This article is based on Google Project Zero's public research. The vulnerabilities described have been patched in the February 2026 Pixel security bulletin.