首页
社区
课程
招聘
Arm Mali GPU 漏洞允许 MTE 绕过和任意内核代码执行
发表于: 2025-5-28 17:21 82

Arm Mali GPU 漏洞允许 MTE 绕过和任意内核代码执行

2025-5-28 17:21
82

随着技术的快速发展,安全漏洞的出现也越来越频繁。最近,一项新的严重漏洞被发现并命名为 CVE-2025-0072,该漏洞存在于 Arm Mali GPU 驱动程序 中。这一漏洞的影响尤其重要,因为它涉及到许多最新的 Android 设备,包括谷歌的 Pixel 7、8 和 9 系列。在这篇文章中,我们将深入探讨这个漏洞的工作原理以及它是如何绕过 内存标签扩展 (MTE) 的,同时达成任意内核代码执行的。

Arm Mali GPU 漏洞

内存标签扩展 (MTE) 是一种硬件级的安全机制,旨在防止多种类型的内存攻击,包括缓冲区溢出和使用后释放 (use-after-free) 等类型的漏洞。这项安全机制通过为所有的内存指针和块添加 标签,来确保内存访问的安全性。然而,该漏洞显示,即使在这种高级的硬件保护机制下,低级别的驱动程序代码仍可能存在缺陷,从而导致严重的安全问题。

研究表明,该漏洞的成因与 Mali GPU 驱动程序 中的 CSF (Command Stream Frontend) 队列管理有关。攻防双方在这场对抗中的关键在于如何控制和利用这些 kbase_queue 对象及其相应的 kbase_queue_group 结构。

漏洞的技术细节

攻击者可以通过一连串的 ioctl 调用,例如 KBASE_IOCTL_CS_QUEUE_REGISTERKBASE_IOCTL_CS_QUEUE_GROUP_CREATEKBASE_IOCTL_CS_QUEUE_BIND,将一个队列绑定到一个队列组并映射到用户内存空间。真正的漏洞在于,攻击者可以在原有队列组终止后,反复绑定和解绑 kbase_queue,从而操控 queue->phys 字段,使其指向新分配的 GPU 内存页面,同时保持对之前释放页面的用户空间映射。

这种行为导致了 使用后释放的场景,在这种情况下,释放的内存页面依然可以通过用户空间映射进行访问。这种情形若被攻击者巧妙利用,就能够达到攻击的目的。

攻击者可以通过以下步骤来利用这个漏洞。首先,创建一个 kbase_queue 和一个 kbase_queue_group,然后把 kbase_queue 绑定到该 kbase_queue_group。接着,为用户 I/O 页面创建 GPU 内存页面并进行映射,这些页面随后被存储在 queue->phys 字段中。此时,攻击者会终止该 kbase_queue_group,从而解绑 kbase_queue。接下来,创建另一个 kbase_queue_group,并将 kbase_queue 绑定到这个新的组中,同时为这个新队列组再创建新的用户 I/O 页面。

此时,旧页面被释放,而新创建的页面则仍然保持在用户空间,这为攻击者提供了通过已释放的页面再次访问内核代码的机会。

如何绕过 MTE

通常情况下,MTE 应该能够防止这类攻击。然而,根据最新的研究,这一漏洞的特别之处在于,攻击是通过用户空间映射来触发的,而不是通过设备内部的 GPU 操作。尽管 MTE 的设计目标是检测使用后释放等内存安全错误,但当驱动程序用 mgm_vmf_insert_pfn_prot 函数直接将物理内存页面映射到用户空间地址空间时,MTE 并没有被触发。

在这个流程中,即使内存页面被内核真实释放,当通过用户空间映射去访问这些页面时,MTE 的标签检查机制依然没有被激活。正因如此,攻击者可以利用这一漏洞成功越过 MTE 的保护,从而实现任意内核代码的执行。

从技术角度来看,这一漏洞揭示了 MTE 在某些情况下的保护范围有限。因为通过驱动程序创建的映射直接访问释放的内存,而不经过内核的验证检查,导致了严重的安全缺口。

此漏洞于 2024 年 12 月被研究人员向 Arm 汇报,并在 2025 年 5 月通过 Mali 驱动版本 r54p0 修复,伴随 Android 的 2025 年 5 月安全更新一同发布。

结论

在这篇文章中,我们深入探讨了 CVE-2025-0072 漏洞是如何在启用内存标签扩展 (MTE) 的情况下,允许任意内核代码的执行。与以往的漏洞不同,这一漏洞利用了用户空间的内存映射,而非 GPU 操作。这一发现不仅提供了关于如何通过复杂的内存池和驱动特定映射来攻击设备的新视角,也提醒我们,需要在系统架构的各个层面上进行更全面的安全审计与保护。

由于 Arm Mali GPU 在 Android 旗舰设备中极为普遍,因此确保尽快采用最新的安全补丁尤为重要,以免遭受潜在的安全威胁。


[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回