Zero-click Pixel 10 exploit chain: VPU driver mmap flaw (CVE-2026-0106) enables arbitrary kernel read/write, chained with Dolby decoder RCE (CVE-2025-54957)

Zero-click Pixel 10 exploit chain (TL-2026-2418), also tracked as Pixel 10 0-click root exploit chain, is a critical-severity software vulnerability scored CVSS 9.8, first published 2026-09-09. It has no confirmed attribution, affects Google Pixel 10 (Tensor G5), references 3 CVEs (CVE-2025-54957, CVE-2025-36934, CVE-2026-0106), maps to 8 MITRE ATT&CK techniques (T1082, T1203, T1404), and is covered by 9 detection rules and 9 indicators of compromise.

Key facts for TL-2026-2418

Threat ID
TL-2026-2418
Also known as
Pixel 10 0-click root exploit chain, When a Door Closes, a Window Opens
Severity
CRITICAL
CVSS
9.8 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
Status
PATCHED
Category
VULNERABILITY
First published
2026-09-09
Last reviewed
2026-09-09
Attribution confidence
LOW
Motivation
UNKNOWN
Detection rules
9
Indicators of compromise
9

Malware and tooling in Zero-click Pixel 10 exploit chain

Malware and tooling: DriverCartographer

Google Project Zero researchers Seth Jenkins and Jann Horn disclosed a zero-click exploit chain rooting Pixel 10 (Tensor G5) devices: a missing bounds check in the VPU driver's vpu_mmap handler (CVE-2026-0106) lets an unprivileged caller map the entire kernel image into userland via an oversized mmap(), yielding arbitrary kernel read/write. Chained with a Pixel-10-adapted version of the Dolby DD+ decoder zero-click RCE (CVE-2025-54957) that first gains code execution in the mediacodec sandbox from a malicious RCS/MMS audio message, the pair achieves fully remote, zero-click root with no user interaction.

How Zero-click Pixel 10 exploit chain works

On 2026-05-13, Google Project Zero published "A 0-click exploit chain for the Pixel 10: When a Door Closes, a Window Opens," documenting a two-stage attack chain that roots a Pixel 10 (Tensor G5) device without any user interaction.

Stage one reuses the zero-click Dolby Digital Plus (DD+) Unified Decoder vulnerability (CVE-2025-54957), originally demonstrated against Pixel 9 in Project Zero's January 2026 two-part writeup ("Decoding Dolby" / "Cracking the Sandbox with a Big Wave"). CVE-2025-54957 is an integer wraparound (CWE-190) in evo_priv.c's EMDF payload-size calculation, producing an undersized skip-buffer allocation and a controlled out-of-bounds write (CWE-787). Because Android Messages auto-decodes incoming RCS/MMS audio attachments via the Dolby decoder with no user interaction, a malicious audio message delivers code execution inside the SELinux-sandboxed mediacodec process. To port the Pixel 9 exploit to Pixel 10, the researchers updated memory offsets and, because Pixel 10 enforces RET PAC (pointer authentication on return addresses) where Pixel 9 relied on stack-protector, retargeted the corruption primitive to overwrite the dap_cpdp_init function pointer instead of __stack_chk_fail — defeating the additional mitigation in roughly a day of adaptation work.

Stage two is the newly disclosed privilege escalation: the VPU (video processing unit) driver's IOCTL handler vpu_mmap (bug 463438263 / Android tracker A-463674877, later assigned CVE-2026-0106) calls remap_pfn_range using only the caller-supplied VMA size rather than validating it against the true MMIO register-region size. By requesting an mmap() larger than the VPU's register window, a caller inside the mediacodec sandbox can map arbitrary adjacent physical memory — including the kernel image, which the Pixel bootloader decompresses at the fixed physical address 0x80010000 on every boot — directly into userland. Because Android's arm64 linear map is deliberately left unrandomized (to support up to 256GB of hypothetical memory hot-plug) and its virtual address is a static function of PHYS_OFFSET (phys_to_virt(x) = ((x) - 0x80000000) | 0xffffff8000000000), the attacker can compute the kernel's virtual base without leaking the KASLR slide, a technique Project Zero detailed separately in "Defeating KASLR by Doing Nothing at All" (2025-11-03). The researchers stated the resulting exploit required about 5 lines of code and under a day to develop, and Android's VRP rated it High severity — an escalation from the Moderate rating given the earlier, architecturally similar BigWave driver bug. Unlike a conventional Android camera/media driver, the VPU driver exposes the Wave677DV register interface directly to userspace at /dev/vpu without routing through the V4L2 media framework's normal bounds-checked buffer/memory-mapping layer, which is what let the missing check in vpu_mmap go undetected. Third-party vulnerability trackers (SentinelOne, AppSecure) independently catalog CVE-2026-0106 as a critical, no-user-interaction local elevation-of-privilege issue with a CVSS 3.1 base score of 9.3, corroborating Project Zero's High/root-equivalent severity assessment.

The VPU driver bug shares development lineage with the /dev/bigwave AV1 hardware-decode driver exploited in the Pixel 9 chain (CVE-2025-36934): both drivers wrap the Chips&Media Wave-series video-accelerator IP present on Tensor SoCs and are intentionally exposed to the restricted mediacodec SELinux context so hardware media decoding can be sandboxed. CVE-2025-36934 was a use-after-free race: the BIGO_IOCX_PROCESS ioctl waits up to 16 seconds for bigo_worker_thread to finish a job, but if enough jobs are queued ahead of the target, userland times out and closes /dev/bigwave's file descriptor while the worker thread is still running -- freeing the inst structure (which inline-embeds the job object) while bigo_worker_thread still holds a reference. The attacker reclaims that freed memory by spraying attacker-controlled kmalloc allocations (e.g., via Unix Domain Socket messages) to control the recovered job->regs pointer; when execution reaches bigo_pull_regs(), its memcpy_fromio(regs, core->base, core->regs_size) call writes the BigWave processor's register state through the corrupted pointer, giving a roughly 2144-byte arbitrary kernel write with no KASLR leak required.

That "no leak required" property comes from a separate primitive Project Zero detailed in "Defeating KASLR by Doing Nothing at All" (2025-11-03): because the ARM64 linear map's virtual base (0xffffff8000000000) and the Pixel bootloader's kernel decompression physical address (0x80010000) are both static, an attacker can read a target symbol's kernel-base offset from /proc/kallsyms and compute its absolute virtual address directly, without ever leaking the KASLR slide. In the Pixel 9 chain this is used to locate the modprobe_path kernel variable so the arbitrary-write primitive can overwrite it with an attacker-controlled path, causing the kernel's request_module() fallback to execute an attacker-supplied binary as root -- turning the BigWave arbitrary write into full root code execution.

CVE-2025-54957 (Dolby DD+/UDC) was fixed for Pixel and broader Android in the January 2026 Android Security Bulletin (SPL 2026-01-05), alongside CVE-2025-36934 (BigWave). CVE-2026-0106 (VPU driver) was fixed in the February 2026 Pixel Update Bulletin (SPL 2026-02-05), 71 days after the 2025-11-24 VRP report. This is a disclosed-and-patched research finding — Project Zero found no evidence of in-the-wild exploitation of either link in the chain — but it is tracked here for its zero-click chaining methodology (sandbox-exposed hardware-accelerator drivers + unrandomized ARM64 linear mapping) against Tensor-based Android devices, which is directly reusable against any future driver with the same missing-bounds-check pattern.

MITRE ATT&CK techniques used in TL-2026-2418

Discovery

T1082 System Information Discovery; T1426 System Information Discovery

Execution

T1203 Exploitation for Client Execution; T1575 Native API; T1658 Exploitation for Client Execution

Privilege Escalation

T1404 Exploitation for Privilege Escalation; T1626 Abuse Elevation Control Mechanism

Defense Evasion

T1575 Native API

Initial Access

T1664 Exploitation for Initial Access

Affected products and versions in Zero-click Pixel 10 exploit chain

  • Google — Pixel 10 (Tensor G5)
    Vulnerable versions: Security patch level before 2026-02-05
    Fixed in: Security patch level 2026-02-05 and later
  • Google — Pixel 9
    Vulnerable versions: Security patch level before 2026-01-05
    Fixed in: Security patch level 2026-01-05 and later
  • Dolby Laboratories — Dolby Unified Decoder (DD+/UDC)
    Vulnerable versions: 4.5; 4.6; 4.7; 4.8; 4.9; 4.10; 4.11; 4.12; 4.13
    Fixed in: Version per Dolby Security Advisory, 2025-10-14
  • Chips&Media — Wave677DV video accelerator IP (Tensor G5 VPU driver)
    Vulnerable versions: VPU driver shipped prior to the February 2026 Pixel security bulletin
    Fixed in: February 2026 Pixel security bulletin, SPL 2026-02-05+
  • Samsung — Galaxy S24 (and other Android OEM devices shipping the vulnerable Dolby UDC)
    Vulnerable versions: Devices using unpatched Dolby UDC prior to the January 2026 Android Security Bulletin
    Fixed in: January 2026 Android Security Bulletin, SPL 2026-01-05+

Remediation for Zero-click Pixel 10 exploit chain

Patches

  • Pixel Update Bulletin—February 2026 (CVE-2026-0106, SPL 2026-02-05+)
  • Android Security Bulletin—January 2026 (CVE-2025-54957, CVE-2025-36934, SPL 2026-01-05+)

Immediate actions

  • Update Pixel 10 devices to security patch level 2026-02-05 or later, which fixes CVE-2026-0106 in the VPU driver.
  • Update Pixel 9 and other affected Android devices to security patch level 2026-01-05 or later, which fixes CVE-2025-54957 (Dolby DD+ decoder) and CVE-2025-36934 (BigWave driver).
  • Verify fleet-managed Android/Pixel devices report the current SPL via MDM before treating the chain as remediated.

Workarounds

  • Where organizational policy permits, disable automatic RCS/MMS media auto-download and playback in Android Messages pending patch deployment.

Longer-term hardening

  • Audit which hardware-accelerator device nodes (VPU, BigWave/AV1, and other Chips&Media Wave-series IP) are reachable from the mediacodec SELinux domain and restrict to the minimum required.
  • Track future Pixel/Android security bulletins for additional VPU or Wave-series driver advisories given the confirmed shared codebase lineage between the BigWave and VPU drivers.
  • For kernel driver mmap/IOCTL handlers, require explicit bounds validation of caller-requested mapping size against the true hardware register-region size rather than trusting the VMA size alone.

CVEs associated with Zero-click Pixel 10 exploit chain

CVE-2025-54957, CVE-2025-36934, CVE-2026-0106

Weaknesses (CWE) in Zero-click Pixel 10 exploit chain

CWE-190, CWE-787, CWE-119, CWE-125

Timeline of Zero-click Pixel 10 exploit chain

  • Dolby Laboratories publishes a security advisory for an out-of-bounds write in the Dolby Unified Decoder (DD+), later tracked as CVE-2025-54957.
  • CVE-2025-54957 is published to NVD with a CVSS 3.1 base score of 9.8 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H).
  • Project Zero publishes "Defeating KASLR by Doing Nothing at All," documenting the unrandomized ARM64 linear-map technique later reused to compute kernel addresses in the Pixel 10 chain.
  • Seth Jenkins and Jann Horn report the VPU driver vpu_mmap missing-bounds-check flaw (bug 463438263 / Android tracker A-463674877) to the Android Vulnerability Rewards Program.
  • The January 2026 Android Security Bulletin ships fixes for CVE-2025-54957 (Dolby DD+ decoder) and CVE-2025-36934 (BigWave driver use-after-free), closing the original Pixel 9 zero-click chain.
  • Project Zero publishes the two-part Pixel 9 exploit chain writeup ("Decoding Dolby" and "Cracking the Sandbox with a Big Wave"), authored with contributions from Natalie Silvanovich, Ivan Fratric, and Seth Jenkins.
  • The February 2026 Pixel Update Bulletin ships CVE-2026-0106 (VPU driver, High severity per Android VRP), 71 days after the initial report, at security patch level 2026-02-05.
  • Project Zero publishes "A 0-click exploit chain for the Pixel 10: When a Door Closes, a Window Opens," detailing how the Dolby exploit was adapted (retargeting dap_cpdp_init to defeat RET PAC) and chained with the VPU driver flaw for zero-click root on Tensor G5.

Sources cited for Zero-click Pixel 10 exploit chain

More in vulnerability

Detection coverage for TL-2026-2418

As of 2026-09-09, Threadlinqs Intelligence publishes 9 detection rule(s) for TL-2026-2418 across Splunk SPL, Microsoft KQL and Sigma, covering 9 indicator(s) of compromise. The whole corpus is readable without an account; a free account unlocks full detection query text in Splunk SPL, Microsoft KQL and Sigma; paid tiers add raw indicator values, correlation and the MCP server. Threadlinqs MCP server · View plans.

Further reading

Threadlinqs Intelligence — Real-Time Threat Detection Platform

[ 0 threats ] [ 0 det ] [ CRIT: 0 ] [ HIGH: 0 ]
// threat_feed
$ sort --newest
Showing all threats

Latest Threats