Android 14 中的漏洞可通过蓝牙 LE 进行利用

GrapheneOS 项目开发了 AOSP(Android 开源项目)代码库的安全分支,其开发人员发现了 Android 14 平台的蓝牙堆栈中的一个漏洞,该漏洞可能会导致远程代码执行。该问题是由于访问通过蓝牙 LE 传输的音频处理代码中已释放的内存区域(释放后使用)而引起的。

该漏洞的发现是由于使用 ARMv8.5 MTE 扩展(MemTag,内存标记扩展)将额外的保护集成到了 Hardened_malloc 调用中,该扩展允许您将标签绑定到每个内存分配操作并组织检查是否正确使用阻止利用由于访问已释放的内存块、缓冲区溢出、初始化之前的调用以及在当前上下文之外使用而导致的漏洞。

自 14 月初发布 Android 2 QPR14(季度平台发布)更新以来,该错误一直出现。在 Android 14 平台的主代码库中,MTE 机制作为一个选项提供,默认情况下尚未使用,但在 GrapheneOS 中已经启用了它以提供额外的保护,这使得更新到后可以诊断错误安卓 2 QPR2。当使用带有启用基于 MTE 保护的固件的三星 Galaxy BudsXNUMX Pro 蓝牙耳机时,该错误会导致崩溃。对该事件的分析表明,该问题与访问蓝牙 LE 处理程序中已释放的内存有关,而不是由于 MTE 集成而导致的故障。

该漏洞已在 GrapheneOS 版本 2024030900 中修复,影响不包含基于 MTE 扩展的额外硬件保护的智能手机版本(MTE 目前仅针对 Pixel 8 和 Pixel 8 Pro 设备启用)。该漏洞在运行 Android 8 QPR14 的 Google Pixel 2 智能手机上重现。在 Pixel 8 系列智能手机的 Android 上,可以在开发者设置(“设置/系统/开发者选项/内存标记扩展”)中启用 MTE 模式。启用 MTE 会使内存消耗增加约 3%,但不会降低性能。

来源: opennet.ru

添加评论