Hotdry.

Article

Pixel 10 零点击攻击链:RET-PAC 绕过与 VPU 内核任意读写漏洞

深度解析 Project Zero 发布的 Pixel 10 零点击完整攻击链,聚焦 Dolby UDC 的 RET-PAC 绕过策略与 VPU mmap 驱动的内核任意读写漏洞,提供漏洞根因分析与修复时间线对比。

2026-05-16security

2026 年 5 月,Google Project Zero 研究员 Seth Jenkins 发布了针对 Pixel 10 的完整零点击(zero-click)漏洞利用链。该链路由两个阶段构成:从无需用户交互的初始代码执行,到内核特权提升完成 root 接管。这一工作延续了团队此前针对 Pixel 9 的三段式研究,并在 Pixel 10 新引入的 RET-PAC 缓解机制与更换后的硬件驱动层面进行了有针对性的适配。整个攻击链的完整技术细节已在 Project Zero 官方博客公开。

第一阶段:Dolby UDC 漏洞的 RET-PAC 适配

攻击链的第一环沿用了此前在 Pixel 9 中使用的 CVE-2025-54957——Dolby Unified Decoder(UDC)中的零点击漏洞。Dolby UDC 是处理 Dolby Digital 音频格式的统一解码库,集成于绝大多数 Android 设备的媒体处理管道中。在 Google Messages 的消息处理流程中,传入的音频文件会在用户打开消息之前即完成转码,这意味着攻击者只需向目标发送一个恶意构造的音频文件,即可触发背景解码流程中的漏洞,无需任何用户交互。

将这一漏洞从 Pixel 9 移植到 Pixel 10 时,主要工作在于更新库偏移量。但真正的挑战在于 Pixel 10 启用了 RET-PAC(Return Pointer Authentication Code)来替代传统的 -fstack-protector 栈保护机制。在 -fstack-protector 模式下,栈保护失败处理函数 __stack_chk_fail 位于可写内存页,攻击者可以直接覆写该函数指针作为利用原语。然而在 RET-PAC 架构下,PAC 签名保护使得返回地址无法通过简单覆写被篡改,__stack_chk_fail 不再构成可利用的攻击面。

研究团队通过反复试验找到了替代方案:利用 dap_cpdp_init 这一解码器初始化代码段。该代码段在解码器初始化时仅被调用一次,之后不再执行。攻击者可以在不破坏解码器正常功能的前提下覆写该函数指针,从而实现受控的代码执行流。与 Pixel 9 版本相比,这一改动仅涉及攻击原语的选择替换,漏洞内核保持不变。需要注意的是,该 Dolby 漏洞利用链仅对 SPL(Security Patch Level)2025 年 12 月及更早版本的未修复设备有效,Dolby UDC 漏洞已于 2026 年 1 月完成安全更新。

第二阶段:VPU 驱动的内核任意读写漏洞

在 Pixel 9 的攻击链中,第二阶段利用的是 BigWave AV1 解码器驱动中的提权漏洞。然而 BigWave 驱动并未出现在 Pixel 10 的系统镜像中,取而代之的是一个与视频解码相关的 VPU 驱动。该驱动服务于 Chips&Media Wave677DV 芯片(集成于 Tensor G5),用于加速视频解码流程。研究团队与 Jann Horn 合作,仅花费两小时对该驱动进行安全审计,便发现了一个异常简单且易于利用的内核提权漏洞。

该漏洞根因位于 VPU 驱动的 mmap 处理函数中,核心问题在于 remap_pfn_range 的调用完全基于用户传入的 VMA(虚拟内存区域)大小,而未对目标硬件寄存器区域的实际边界进行任何校验。这意味着攻击者可以通过指定一个远大于寄存器区域实际大小的 mmap 参数,将 VPU 硬件寄存器映射起始地址以上的任意物理内存页映射到用户态虚拟地址空间。由于 Pixel 设备的内核镜像始终位于固定的物理地址(Pixel 的物理地址布局不随机化),攻击者可以直接计算内核 .text.data 段相对于 VPU 寄存器区域起始地址的偏移,无需任何 KASLR 绕过或内存扫描。

在此基础上,攻击者只需 5 行代码即可实现对内核任意地址的读写原语。完整的漏洞利用从编写到调试在不到一天内完成,这在实战级内核漏洞利用中属于极低的时间成本。由于可以任意覆写内核函数代码段,攻击者可以在内核态直接获取最高权限,完成从零点击代码执行到系统 root 接管的全过程。

修复时间线与行业影响

该 VPU 驱动漏洞(CVE 相关编号见 Project Zero Issue 463438263)于 2025 年 11 月 24 日由 Project Zero 报告,Android VRP(漏洞奖励计划)评定为高危级别。值得注意的是,这是 Android 历史上首次在 90 天内完成修复的由 Project Zero 报告的驱动类漏洞 —— 补丁于 2026 年 2 月的 Pixel 安全公告中发布,总耗时 71 天。相比之下,此前 Pixel 9 中 BigWave 驱动漏洞的修复周期显著更长,而 Dolby UDC 漏洞在 Pixel 9 上从公开披露到修复的间隔也超过了 80 天。

尽管补丁速度有所改善,Project Zero 指出了一个系统性问题:BigWave 驱动漏洞报告后,研究团队曾建议同一开发团队对其旗下其他驱动进行安全排查,但 5 个月后,该团队开发的 VPU 驱动中仍然存在一个 "极其浅显" 的安全缺陷,仅需一次粗略的代码审计即可识别。这一现象揭示了硬件驱动开发领域安全开发实践的持续不足:驱动代码直接暴露用户态映射接口、缺乏边界校验的 mmap 实现,以及缺乏主动安全审计的流程,是导致此类漏洞反复出现的根本原因。

技术结论与防护建议

该攻击链展示了当代移动设备安全攻防的几个关键趋势。首先,随着 Android 系统在 AI 功能驱动下不断扩展对传入媒体文件的静默处理能力,零点击攻击面正在持续增长,Dolby UDC 漏洞的影响范围横跨 Android、iOS、Windows 及流媒体设备,印证了底层多媒体库安全的跨平台重要性。其次,RET-PAC 等硬件级控制流完整性机制虽然增加了漏洞利用难度,但攻击者能够通过选择替代攻击原语(如初始化代码段覆写)来绕过防护,这意味着防护措施需要多层协同而非单一技术的堆砌。第三,硬件驱动作为连接用户态与内核态的关键层,其安全质量直接影响整个系统的安全基线,直接暴露 MMIO 寄存器映射接口且缺乏边界校验的 mmap 实现属于低级安全缺陷,应当在代码审查阶段被直接发现并修复。

对于 Pixel 10 用户而言,该漏洞已于 2026 年 2 月安全更新中修复,确认设备运行 2026 年 2 月 SPL 或更新版本即可获得保护。对于整个 Android 生态而言,这一案例再次强调了厂商在产品发布前进行系统化安全审计、加强驱动开发安全规范、以及建立漏洞发现到修复的快速响应流程的紧迫性。Project Zero 的工作持续表明,单个漏洞修复固然重要,但推动系统性的安全开发文化变革才是真正降低终端用户风险的治本之策。

资料来源Project Zero - A 0-click exploit chain for the Pixel 10

security

内容声明:本文无广告投放、无付费植入。

如有事实性问题,欢迎发送勘误至 i@hotdrydog.com