主要观点:介绍了 Memory Tagging Extension (MTE) 及相关漏洞 CVE-2025-0072,该漏洞可使受信任的 Android 应用绕过 MTE 获得任意内核代码执行权限。
关键信息:
- 漏洞影响具有较新 Arm Mali GPU 且使用 Command Stream Frontend (CSF) 架构的设备,如谷歌 Pixel 7、8 和 9 系列,在 Mali 驱动版本 r54p0 中被修复并包含在 2025 年 5 月的 Android 安全更新中。
- CSF 队列通过
kbase_queue
对象与用户空间应用通信,队列创建和绑定过程涉及多个ioctl
操作,绑定过程中存在相互引用。 - 漏洞利用思路是修改已映射到用户空间的
queue->phys
,通过多次绑定和解除绑定kbase_queue
组,使已释放的页面仍可被用户空间访问,从而造成页使用后释放漏洞。 - 利用该漏洞可将释放的页面重用作 Mali GPU 的页表全局目录 (PGD),进而可写入内核代码执行任意内核代码,读取和写入任意内核数据等。
- 解释了 MTE 的工作原理及如何通过硬件实现检查内存损坏,而此漏洞能绕过 MTE 是因为涉及的内存页由
kbase_mem_pool
管理,虽被释放但未真正由伙伴分配器释放,且通过特定方式创建的页映射从用户空间访问时不触发 MTE。
重要细节: - 详细描述了 CSF 队列的工作流程,包括创建、绑定、映射、解除绑定等过程及相关函数调用。
- 展示了利用漏洞的具体步骤,如创建队列和队列组、分配和映射内存页、终止队列组等。
- 提及之前关于内存腐败的相关文章及如何实现将释放的页面重用作 PGD。
- 给出了针对 Pixel 8 的漏洞利用示例及一些设置说明。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。