【原创误差】AOSP跨用户资源会见误差

宣布时间 2025-05-09
一、研究配景


Android的多用户机制是指系统支持在统一台装备上建设多个用户账户,每个账户拥有自力的应用情形、数据和设置,主要用于平板装备、共享装备、企业管理装备等场景 。酷游官网ADLab通过对多用户模式下隔离机制开展清静研究,聚焦系统跨用户资源会见的输入路径污染问题,挖掘了多个AOSP高危误差 。别的,还发明海内外主流厂商中也保存同类型高危误差CVE-2024-34674、CVE-2024-34672、CVE-2025-20883、CVE-2024-49402等 。


二、AOSP多用户系统机制


2.1 基本类型


Android系统界说了多种用户类型:


? Primary User(主用户):装备初始化时建设的第一个用户,拥有所有系统权限,唯一可以吸收OTA 。

? Secondary User(次用户):类似自力账号,无法吸收OTA,不具备装备管理权限 。

? Guest User(访客用户):暂时用户,退出后会删除所有数据 。

? Profile(设置文件):Work Profile事情设置文件用于BYOD企业场景,与主用户隔离但共享部分资源;Restricted Profile限制设置文件用于平板多用户模式,限制权限和会见内容 。

对应权限隔离清静机制:

? 各用户权限自力授予 。

? 一个用户授予权限不会影响其他用户 。

? 跨用户通讯需要系统权限,如:INTERACT_ACROSS_USERS或INTERACT_ACROSS_USERS_FULL 。

? 通俗三方应用无法通过Intent、ContentProvider 等越权会见其他用户的数据或服务 。


2.2 �;せ�


Android系统实验了多种�;せ埔员苊饪缬没У牟环ㄗ试椿峒� 。在Android中,URI的会见权限是由ContentProvider统一管理和控制的 。当用户A的应用携带特定URI提倡某个行动请求时,系统组件会通过挪用链进入queryContentProviders要领来验证该URI的会见权限 。


详细代码实现如下:


图片1.png


这个函数首先检查应用是否携带了"@userid!=currentuserid"的标记,以此判断是否保存跨用户URI会见的情形 。若是确实涉及跨用户会见,则挪用checkCrossUserPermission来磨练是否有跨用户会见的权限,并同时确认会见是否泉源于system/root用户ID 。若是不是system/root用户,函数将继续检查该应用是否拥有INTERACT_ACROSS_USERS_FULL或INTERACT_ACROSS_USERS系统权限 。若上述条件均未知足,则不允许举行跨用户URI资源的会见 。


图片2.png


若是同时知足以下三个条件,系统可能保存跨用户的资源会见误差:


? 系统应用中保存设置为exported=true的组件;

? 该组件可以吸收三方应用传入的URI参数,并且未对userid与目今currentUserId举行清静校验;

? 系统应用的AndroidManifest.xml中声明晰INTERACT_ACROSS_USERS或INTERACT_ACROSS_USERS_FULL权限 。


三、误差原理剖析(Android-337184703)


误差保存于deskclock apk� ?橹�,此� ?槲狝OSP通用铃声系统应用,供应用举行拓展铃声自界说设置 。

图片.png

deskclock� ?榫弑窱NTERACT_ACROSS_USERS*权限 。在HandleSetAlarmApiCalls的挪用链中,系统将导出组件开放给三方应用,保存清静隐患 。详细挪用流程如下:


HandleSetAlarmApiCalls/HandleSetAlarm.onCreate

└──> handleSetAlarm(intent)

 └──> updateAlarmFromIntent(intent, alarm)

  └──>alarm.alert=getAlertFromIntent(intent, alarm.alert)


由于getAlertFromIntent未对传入的URI参数举行任何校验,便直接设置alarm.alert,可能导致三方应用传入恶意URI,从而引发权限绕过或信息泄露等危害 。


图片3.png


攻击者可以结构恶意挪用链,通过传入特定的URI参数并指定目的用户的userId,进而触发系统组件的处置惩罚逻辑 。在未举行用户身份校验的情形下,系统会直接使用该URI设置alarm.alert字段 。由于该URI可指向其他用户空间下的资源,攻击者可进一步通过遍历_id字段,抵达恣意读取并窃取其他用户音频文件的目的 。


四、误差处置惩罚


Google Android清静团队对酷游官网ADLab提交的误差报告举行了评估,确定该误差为高危级别 。鉴于修复保存的难题,在最新宣布的版本中,已弃用了保存误差的组件,并在新版本中接纳其他组件举行替换 。


图片4.png


图片5.png


五、小 结


为了阻止此类问题,建议设置权限最小化,审慎使用INTERACT_ACROSS_USERS*这类权限,别的,对开放组件举行userid是否为currentuserid的清静校验 。


六、误差披露时间线


? 2024年4月26日 ADLab向Goolge提交Android系统清静报告 。

? 2024年4月30日 ADLab增补细节 。

? 2024年5月8日  Goolge确认误差评级以及高危奖励 。

? 2024年12月11日 双方相同修复计划 。

? 2024年12月24日 Google最终阻止该功效开发,使用其他组件替换该功效 。



酷游官网起劲防御实验室(ADLab)


ADLab建设于1999年,是中国清静行业最早建设的攻防手艺研究实验室之一,微软MAPP妄想焦点成员,“黑雀攻击”看法首推者 。阻止现在,ADLab已通过 CNVD/CNNVD/NVDB/CVE累计宣布清静误差6500余个,一连坚持国际网络清静领域一流水准 。实验室研究偏向涵盖基础清静研究、数据清静研究、5G清静研究、AI+清静研究、卫星清静研究、运营商基础设施清静研究、移动清静研究、物联网清静研究、车联网清静研究、工控清静研究、信创清静研究、云清静研究、无线清静研究、高级威胁研究、攻防对抗手艺研究 。研究效果应用于产品焦点手艺研究、国家重点科技项目攻关、专业清静服务等 。


adlab.jpg