2024 年度补丁分析:点我

给大家分享一个好消息,经过一年的研究,我现在在 Google BugHunters 平台上总排名 32,2024 年度第 6 名,Android Program 第 6 名!感谢各位一年陪伴!

最后更新时间:2025/05/08 更新内容:更新 03 04 05

状态更新:由于本人健康问题,预计近期对电子产品的使用将会受限,此博客跟我的频道可能会更新缓慢,尝试联系我可能无法连通或回复缓慢,建议关注我的频道获取最新状态

2025-05-01

在野利用漏洞:CVE-2025-27363,终于不是 USB 了

Framework

CVE-2023-21342 EoP High
绑定到应用提供的 speech RecognitionService 时不指定 BIND_ALLOW_BACKGROUND_ACTIVITY_STARTS 标记,避免 BAL bypass
Android 14 就修了的洞,现在 backport 给 13

CVE-2024-34739 EoP High
去年八月就放过一遍,不知道为什么又放了一遍。设置向导未完成时,插入 USB 设备不弹出 activity,避免 FRP 绕过。

CVE-2025-0077 EoP High
切换用户过程中的 race condition,有概率导致切换到其他用户后不显示目标用户设置的锁屏。只影响 15。
这个问题我很早也注意到了,可惜一直没能稳定复现出来。

CVE-2025-0087 EoP High
PackageInstaller 内的逻辑 bug,请求为其他用户卸载 app 时只在当前用户是目标用户的父用户的情况下才允许。

CVE-2025-22425 EoP High
PackageInstaller 内使用了不安全的 getCallingPackage 函数获取调用者,可能被伪造结果,改成使用 getLaunchedFromPackage。

CVE-2025-26422 EoP High
WindowManagerService dump 函数内的权限检查放错了位置,调用者传递 --high-priority 参数的时候不会检查权限,造成敏感信息泄露。只影响 15。

CVE-2025-26426 EoP High
registerReceiver 在调用者给定 caller package = "android" 时需要保证 calling uid 真的是 core uid。

CVE-2025-26427 EoP High
跟 CVE-2024-0032 一样,限制不让访问 /sdcard/Android/data。不知道同一个漏洞还能放多少遍。。。

CVE-2025-26428 EoP High
如果当前 task 已经进入 lock task mode,忽略后续的 app pinning 请求。

CVE-2025-26436 EoP High
清楚一个 PendingIntentRecord 的 BAL token 的时候也要顺带清掉它带的 allowlist duration。

CVE-2025-26440 EoP High
CameraService 优化 app 前后台状态改变时的处理代码,避免后台 app 仍然能使用摄像头的问题

CVE-2025-26444 EoP High
VoiceInteractionManagerService 会在用户强行停止第三方语音助手时将目前选择的语音助手设置成系统默认的,重设 ROLE_ASSISTANT 会导致额外权限被授权给默认的语音助手,这不是合理的行为所以删除相关处理。

CVE-2025-26424 ID High
VpnManagerService 新增的 getFromVpnProfileStore、putIntoVpnProfileStore、removeFromVpnProfileStore、listFromVpnProfileStore 添加权限检查。只影响 15

CVE-2025-26442 ID High
之前 CVE-2024-49742 的补丁有问题,错误的检查了 resolve 出来的组件的包名而非整个组件名,所以可以通过声明两个组件的方式来绕过补丁。

CVE-2025-26429 DoS High
AppOpsService collectOps 内限制返回的数据大小,避免过大超过 binder 数据传输大小限制造成异常。

System

CVE-2025-27363 RCE High
上游 freetype 中的整数溢出 bug

CVE-2025-26420 EoP High
官方未放出此漏洞补丁链接,手动查找得到:https://android.googlesource.com/platform/packages/modules/Permission/+/5c07da90f7ae911b9e64d4e34871b7d2115a0a7f
看起来是显示多个权限请求对话框时的内容遮盖问题。官方给出的漏洞描述:

In multiple functions of GrantPermissionsActivity.java , there is a possible way to trick the user into granting the incorrect permission due to permission overload. This could lead to local escalation of privilege with no additional execution privileges needed. User interaction is not needed for exploitation.

CVE-2025-26421 EoP High
添加了一个可以自定义的 config_biometric_protected_package_names,当用户在设置里尝试强行停止、禁用或卸载这些被保护的 app 的更新时要求用户验证身份再继续。没太看懂,漏洞描述:

In multiple locations, there is a possible lock screen bypass due to a logic error in the code. This could lead to local escalation of privilege with no additional execution privileges needed. User interaction is not needed for exploitation.

CVE-2025-26423 EoP High
添加 Wi-Fi 网络时检查附带的 IpConfiguration 和 ProxyInfo 的大小。

CVE-2025-26425 EoP High
RoleService 的 getDefaultApplicationAsUser/setDefaultApplicationAsUser 两个 API 限制只能在 Android 14+ 上被调用,因为里面是通过检查 MANAGE_DEFAULT_APPLICATIONS 这个权限来确保这些 API 不被滥用的,在 Android 13 或更低版本的系统上 MANAGE_DEFAULT_APPLICATIONS 权限并不存在,所以第三方 app 可以自己定义这个权限然后给自己授权从而绕过 RoleService 里面的检查。

CVE-2025-26430 EoP High
Settings SpaAppBridgeActivity 里检查 package name 只能包含合法字符串,猜测是注入 / 字符伪造后面的 user id

CVE-2025-26435 EoP High
禁止访客用户禁用 deceptive app scanning

CVE-2025-26438 EoP High
蓝牙 SMP 协议实现中的验证绕过 bug

CVE-2023-35657 ID High
蓝牙 BTA 层的类型混淆,会导致越界读

2025-04-01

Android 12 & 12L 的支持已于本月结束,呜呜呜
在野利用漏洞:CVE-2024-53150CVE-2024-53197,都是内核 USB 模块

Framework

CVE-2025-22429 ID Critical
bundle 解析过程中的逻辑 bug,try 块中调用 readArrayMap 解析其值,finally 块中判断若 lazy value 数量为 0 则说明不需要 lazy unparcel,直接释放 parcel。但这个 lazy value 数量是使用 readArrayMap 的返回值来描述的,如果 readArrayMap 已经成功创建了一些 LazyValue 但在后续解析过程中抛出异常,由于 readArrayMap 并没有正常返回自然也就没有返回值,此时上层记录的 lazy value 数量还是 0,parcel 在 finally 中被释放,后续 LazyValue 再使用 parcel 就会产生 UAF。注意,若进程开启了 Defuse (在 system_server 内满足此条件),对 BadParcelableException 的 catch 块内清空了 map,而从代码上来看失去引用的 LazyValue 并不会操作 parcel,所以我猜测想实际触发这个漏洞需要一个并非 BadParcelableException 但在上层被 catch 的异常才能让 LazyValue 驻留在 map 里?
类似之前的 leak value,但在没有另一个能倒退 parcel position 的漏洞的情况下是否能像之前那样利用?从漏洞描述上来看应该是做到了代码执行的

CVE-2025-22416 EoP High
ChooserActivity 预览 ChooserTarget 的 icon 时先检查是否有权限读取 uri。

CVE-2025-22417 EoP High
WindowManager transaction 过程中的 race condition,看的不是很明白。漏洞描述:

In finishTransition of Transition.java, there is a possible way to bypass touch filtering restrictions due to a tapjacking/overlay attack. This could lead to local escalation of privilege with no additional execution privileges needed. User interaction is needed for exploitation.

CVE-2025-22422 EoP High
System UI 处理 authentication prompt 时的逻辑 bug,当 top app 和 client app 不一样时说明可能真正请求验证的 app 已经被恶意 app 顶到了后台,用户看见的可能是恶意 app 显示的内容(类似 task hijacking),这个时候需要告知原来的 client 验证失败。但是在使用了 createConfirmDeviceCredentialIntent (会 resolve 到 settings 的 ConfirmDeviceCredentialActivity)而非手动调用 BiometricPrompt 进行验证的情况,此时直接发起验证流程的 client package 是 settings,即使后续 top activity 变成了 settings 的其他 activitiy,这个判断也会认为 top app 并没有改变从而不会取消验证请求。利用这个 bug 应该需要能找到足够具有迷惑性的 activity 所以应该还挺麻烦的?补丁加了一个 top activity 的 class name 检查。
相关引用:CVE-2020-27059

CVE-2025-22424 EoP High
CVE-2025-22426 EoP High
pm ComputerEngine resolveContentProvider 同时接收 uri 的 authority 和 user id,但调用者可能会把 user id 存储在 authority 内,要把这个 user id 提取出来。不太清楚具体是哪里可能会发生这种情况,感觉挺有意思的

CVE-2025-22434 EoP High
用户点击键盘上打开系统设置的快捷键时没有检查是否有锁屏就直接打开了设置 app,造成锁屏绕过。

CVE-2025-22437 EoP High
注意官方公告放错了补丁!!官方公告里放的补丁和 CVE-2024-49728 一致,但是正确的补丁其实是 https://android.googlesource.com/platform/frameworks/base/+/25d6165d462ad8fe83ea8dd254214a420bc1a526
其实这个漏洞和 2023 年 11 月公告 CVE-2023-40111 是一样的,当时可能由于兼容性考虑只给 android 14 上了这个 patch,现在可能是觉得不妥当又给 backport 到了 13。

CVE-2025-22438 EoP High
input dispatcher 里的加锁问题,会导致 dispatchEntry 这个变量 UAF

CVE-2025-22442 EoP High
work profile 默认禁用开发者选项,看漏洞描述是能往 profile 里装 app

CVE-2024-49722 ID High
在系统设置里更换用户头像的时候使用显式 intent 进行图片选择,确保只启动系统自己的头像选择器。
(这个问题反反复复修复几遍怎么又来了?之前测试过这里没能测出什么问题,这次只给 15 更新了,可能是新版本又加了什么东西)

CVE-2025-22421 ID High
通知的 content description (用于无障碍)里不要包含通知内容,否则可能会被读屏软件在没解锁屏幕的时候就读出来

CVE-2025-22430 ID High
TrustManager 新增的 isInSignificantPlace 方法需要 ACCESS_FINE_LOCATION 权限。只影响 15

CVE-2025-22431 DoS High
AppOpsService 内即使直接调用者可信也不应该直接信任由 proxy app 提供的 proxied attribution tag,改为只在没有 proxy app 或其是系统 app 时才信任

System

CVE-2025-26416 EoP Critical
skia 解码 bmp 图片时的未初始化变量

CVE-2025-22423 DoS Critical
dng_sdk 里如果 tag count 非法则提前返回,避免后续崩溃

CVE-2024-40653 EoP High
Telecomm 里如果绑定到 ConnectionService 后 15 秒还没有响应就解绑

CVE-2024-49720 EoP High
通过 role 授予权限时把用户之前对该权限选择的“每次都询问”视为有效的用户决定,不要去覆盖它

CVE-2024-49730 EoP High
fuse daemon 内增大 MAX_READ_SIZE,看描述是 oob write

CVE-2025-22418 EoP High
系统设置内选择铃声的 intent 指定包名,怀疑跟之前那堆铃声漏洞(CVE-2023-40108、CVE-2023-40132)是一样的

CVE-2025-22419 EoP High
telephony app 多个 activity 添加 flag 防止被悬浮窗覆盖。

CVE-2025-22427 EoP High
settings NotificationAccessConfirmationActivity 错误地将 SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS 传递给 addFlags (作为一个 system flag 应该使用 addSystemFlags/addPrivateFlags),导致其被错误解释为了 FLAG_SHOW_WHEN_LOCKED 从而显示在了锁屏之上,不解锁就可以授权。

CVE-2025-22428 EoP High
在我之前那个 CVE-2024-43088 的补丁基础之上把检查 calling package 的权限更换为了检查 calling uid 的权限。不是很懂,猜测是可能有一个 app 在主用户上有跨用户权限但在次用户上没权限的情况?

CVE-2025-22432 EoP High
此漏洞由我发现并报告。
telecomm 内使用了 BIND_ALLOW_BACKGROUND_ACTIVITY_STARTS 来 bind CallRedirectionSevice(其是 BAL 豁免名单之一),所以响应超时了也需要 unbind,否则会导致 BAL bypass。更多内容可见于 https://wrlus.com/android-security/bindservice-error-handle/

CVE-2025-22433 EoP High
IntentForwarderActivity 内检查 intent 是否可以被转发到其他 profile 时的逻辑 bug,如果 intent 有 selector 那这个 intent 本身和 selector 都要被检查。

CVE-2025-22435 EoP High
蓝牙 AVDT 协议实现里增加了一个消息类型检查,防止可能的类型混淆

CVE-2025-22439 EoP High
DocumentUI 加载 last accessed stack 记录的 uri 时忘记校验 uri,可以绕过存储限制授权

CVE-2024-49728 ID High
通过蓝牙发送文件时检查传递的 uri 是否为指向其他用户的 uri。印象中很久以前我是测试过这里的,没利用成功,不知道咋复现的

2025-03-01

在野利用漏洞:CVE-2024-43093CVE-2024-50302
懒得放补丁链接了,自己去官方公告里面找吧

Framework

CVE-2024-0032 EoP High
去年2月补丁里放过的,限制通过 SAF 访问 /sdcard/Android/data。不知道为啥重新放了一遍。

CVE-2024-43093 EoP High
跟去年11月补丁的一样,自己去看去年的分析吧,懒得再写一遍了。去年忘了给 12L 更新,重新放一遍。

CVE-2025-0078 EoP High
service manager 注册自己的时候需要打开 requesting sid 从而可以正确检索 caller 的 selinux context。关于 requesting sid 的更多信息见 https://project-zero.issues.chromium.org/issues/42450815 (CVE-2019-2023 及相关的一系列漏洞)

CVE-2025-0080 EoP High
PackageInstaller unarchive app 的对话框添加 flag 防止被 overlay。

CVE-2024-43090 ID High
此漏洞由我发现并报告。
去年11月放过的,systemui 里面的 icon 跨用户泄露,当时在 Android 15 上忘了启用相关 flag 导致补丁没生效,所以重新放一遍

CVE-2025-0083 ID High
telecom 内使用 getAuthority() 然后手动解析 @ 字符前面的内容去获取 uri 内的 user id 而非使用 getEncodedUserInfo。从 commit message 内大概可以猜测是把 @ 字符使用 uri encode 的格式来绕过原来的补丁。

CVE-2025-0086 ID High
AccountManagerService getAuthToken 校验 Authenticator 返回的 account type,避免读到其他 account 数据。

CVE-2024-49740 DoS High
telephony 限制 VisualVoicemailSmsFilterSettings 必须由默认拨号 app 设置,同时限制其内容的大小

System

下面有很多一个补丁链接对应多个漏洞的情况,不一一复制粘贴了,看得明白就行

CVE-2025-0074 RCE Critical
CVE-2025-22403 RCE Critical
bluetooth sdp sdp_discovery.cc 内两处出错 log 里使用了可能已经被释放掉的指针,造成 UAF。真的能造成 RCE?我持怀疑态度。只影响 15。

CVE-2025-0075 RCE Critical
sdp_server.cc log 语句内的 UAF,跟上面一样。只影响 15。

CVE-2025-0084 RCE Critical
蓝牙 SDP 协议实现中,同一个客户端发起多个连接可能导致 UAF

CVE-2025-22408 RCE Critical
CVE-2025-22410 RCE Critical
CVE-2025-22411 RCE Critical
CVE-2025-22412 RCE Critical
CVE-2025-22409 EoP Critical
CVE-2025-22404 EoP High
CVE-2025-22405 EoP High
CVE-2025-22406 EoP High
CVE-2025-22407 ID High
跟上面一堆是类似问题,蓝牙 log 内可能使用已经被释放的变量导致 UAF。真的有必要搞这么多 CVE?只影响 15。

CVE-2025-0081 DoS Critical
解析 jpeg 时如果哈夫曼表为空直接 abort

CVE-2023-21125 EoP High
蓝牙 btif/src/btif_hh.cc 内的 UAF 问题

CVE-2025-0079 EoP High
蓝牙 AVCTP/AVDTP 指定 BTA_SEC_ENCRYPT 保证加密传输

CVE-2025-0082 ID High
补丁跟上面的 CVE-2025-0083 是一样的。

CVE-2025-0092 ID High
CVE-2025-0093 ID High
蓝牙设备解除绑定时重置短信、通讯录、SIM 权限授权状态

CVE-2025-26417 ID High
将已经下载好的文件插入进 DownloadProvider (DownloadManager.addCompletedDownload)时,确保路径对应文件的所有者与调用者匹配,否则恶意应用可以通过插入操作产生的 DownloadProvider 的 id 通过 DownloadProvider 的权限访问该文件

2025-02-01

可能的被在野利用漏洞:CVE-2024-53104,内核中 USB 模块的越界写入

Framework

CVE-2024-49721 EoP High 1
CVE-2024-49721 InputMethodSubtypeArray 反序列化漏洞分析

CVE-2024-49743 EoP High 1 2 3
这个漏洞比较复杂,后续会单独发文章解析,敬请期待

CVE-2024-49746 EoP High 1 2
Parcel::continueWrite 中的 fd 处理问题,看起来是会错误 close 掉不该被关闭的 fd?还加了很多溢出的检查

CVE-2025-0097 EoP High 1
WindowManagerService transferTouchGesture 中除了校验 token 还需要校验 calling uid 跟 owner uid 相等。只影响 15

CVE-2025-0098 EoP High 1
TaskFragmentOrganizerController 内会检查 activity 的 pid 与注册 organizer 的时候的 calling pid 是否相等,如果不相等说明不是同一个进程,这个时候不发送 activity token 以避免它泄露。但是这个检查存在缺陷,因为如果 app 进行 binder transact 的时候指定了 FLAG_ONEWAY,说明这是一个异步调用,这个时候被调用者拿到的 calling pid 会是 0,以此可以泄露出 pid 是 0 的 ActivityRecord 的 token。什么时候 ActivityRecord 的 pid 是 0?怀疑是 activity 所属的进程已经退出了的时候。只影响 15。

CVE-2025-0099 EoP High 1
CompanionDeviceManagerService 新增的 getBackupPayload 和 applyRestoredPayload 这两个函数没有权限检查,应该加上 uid 校验,只允许 system 身份调用。

CVE-2023-40133 ID High
CVE-2024-0037 ID High
1
检查 Autofill 相关的 Slice 中的 Icon URI 是否属于当前用户,避免跨用户泄漏。这个应该是去年就放过一次,不知道为什么又放了一遍

CVE-2023-40134 ID High
CVE-2023-40135 ID High
CVE-2023-40136 ID High
CVE-2023-40137 ID High
CVE-2023-40138 ID High
CVE-2023-40139 ID High
1
检查 Autofill 相关 RemoteViews 中 URI 是否全部属于当前用户,避免跨用户泄漏。这个去年也放过一次,同样搞不懂为什么又放

CVE-2025-0100 ID High 1
此漏洞由我发现并报告。
SystemUI MediaProjectionPermissionActivity 使用 getCallingPackage 获取调用者然后校验其权限,如果是特权应用就跳过确认环节。但是 getCallingPackage 的返回结果实际上可以被伪造,补丁改成了更准确的 getLaunchedFromPackage。
这里有一个好玩的点,就是 getCallingPackage 返回的是哪个 app 会收到当前 Activity 返回的结果,所以可以被伪造,但是 SystemUI 需要把 IMediaProjection 返回给调用者然后调用者才能使用它开始录屏,伪造 getCallingPackage 实际上会导致应用收不到返回的 binder 自然也就无法完成后续利用。那么这个看起来触发条件和可用性相悖的漏洞是怎么被利用的呢?这里先卖个关子,读者可以先自己思考思考。

CVE-2024-49741 DoS High 1
此漏洞由我发现并报告。AppWidgetServiceImpl 中限制一个应用最多可以创建 20 个 host,每个 host 可以拥有 200 个 widget,这个补丁之前是完全没有限制的,所以可能发生超大数据量导致 DoS。

Platform

CVE-2025-0094 EoP High 1
禁止 work profile 打开多用户管理页面,看漏洞描述是可以移除 work profile?

System

CVE-2025-0091 EoP High 1
在 Settings 应用中的账号管理页面里,禁止启动带有 content URI 的 intent。跟 Self-changing Data Type - CVE-2024-40676 漏洞分析 是同一类漏洞,去年那篇文章一直没发就是为了等这个漏洞审核,可惜 duplicate 了 😭

CVE-2025-0095 EoP High 1
Settings AppTimeSpentPreference 中使用一个只有 Action 的隐式 Intent 启动 Activity,可能会被恶意应用劫持。补丁给这个 intent 加上了 setPackage。

CVE-2025-0096 EoP High 1
nfc 模块里面有个 malloc 的 size 写小了,只影响 15

CVE-2024-49723 ID High 1 2
移除 Conscrypt 的 3DES 支持,只给 15 更新了

CVE-2024-49729 ID High 1
fs_mgr/libdm/dm.cpp 中 redact 掉可能的敏感信息,否则会导致其在 bug report 过程中被 dump 出来,泄漏原始加密密钥。

2025-01-01

这个月补丁好多,算是解答了上个月的“为什么这么少”的疑问
大家新年快乐!一直在等补丁链接,等了一个月还没放,只能先发一个不完整版的了
注:本月补丁链接未放出 以下部分补丁来源为手动还原
2025/02/24 更新:官方公告里已经放出补丁链接 建议去看官方公告里的;官方公告里移除了 CVE-2023-40108 CVE-2023-40132,不知道为什么

Framework

CVE-2024-49724 EoP High 1
AccountManagerService checkKeyIntent 加了个 setComponent 让 intent 变成显式 intent,防止 resolve 到 startActivity 期间某些影响 intent resolve 流程的因素发生改变,导致 TOCTTOU race condition。具体实例:Self-changing Data Type

CVE-2024-49732 EoP High 1
CompanionDeviceManagerService 里新增的 enablePermissionsSync disablePermissionsSync getPermissionSyncRequest 三个 API 缺少权限检查,补丁限制只有 system uid 可以调用。只影响 15。

CVE-2024-49735 EoP High 1
存储 NotificationChannel 的时候,限制附带的 VibrationEffect 的大小。

CVE-2024-49737 EoP High 1
调用 startActivityInTaskFragment 的时候已经 clearCallingUid 了,之后在 AMS 里构造 SafeActivityOptions 的时候会拿到自己的 uid,改成调用的时候就主动按照已经记录的 calling uid/pid 构造 SafeActivityOptions 再传过去。只影响 13+。看了眼致谢信息,果然是 Michał Bednarski。

CVE-2024-49738 EoP High 1
Parcel::writeInplace() 在写入数据之前先校验数据。没太看懂咋触发,看描述是越界写。

CVE-2024-49744 EoP High 1
此漏洞由我发现并报告。
AccountManagerService checkKeyIntentParceledCorrectly 里只检查了 intent 的类型,没有检查再次反序列化后 intent 的类型,可以通过 bundle mismatch 的方式绕过。关于绕过了有什么用,可以查看这一篇: https://konata.github.io/posts/creator-mismatch/
注:这个漏洞看起来很明显,但实际上并不好利用,ChooseTypeAndAccountActivity 或者 AddAccountSettings 等常见利用点都已经在之前的 CVE-2023-20944 跟 CVE-2023-21124 的补丁里加上了 new Intent 使得我们伪造的 intent 并不会直接传递给 startActivity。那么如何触发这个漏洞呢?这里先留一个悬念,读者可以自己先思考思考。

CVE-2024-49745 EoP High 1
Parcel::growData 中如果现在的 data position 已经大于 data size 就直接返回。看漏洞描述是越界写。

CVE-2023-40108 ID High 1
SettingsProvider 中设置铃声的时候校验这个 URI 确实是一个音频文件。追代码可以看见后面会读取这个 URI 把它写进一个 cache dir 里,这里是以 SettingsProvider 的权限去读取,SettingsProvider 跑在 system_server 里所以是 system 权限,然后这个 cache file 可以通过调用 SettingsProvider 的 openFile() 打开,返回一个 InputStream 而不需要任何权限,所以这里是一个以系统权限读取任意 URI。
很早就知道的老问题了,属于有生之年系列,最早应该是 CVE-2022-20353 在 Settings 调用铃声选择器的时候加了校验,看代码可以发现 com.android.dialer.app.settings.DefaultRingtonePreference 也有类似问题(这个月的 CVE-2023-40132),而且铃声属于 Settings.System 组,可以被拿到读写系统设置权限的 app 手动触发。这次在根源上修复了,应该不会再有问题了。

CVE-2024-49733 ID High 1
此漏洞由我发现并报告。
Settings 的 ServiceListing 始终显示被启用了的服务,保证用户也能看见有些校验不通过但是已经被启用的服务。
感觉类型给错了,应该给 EoP 的

Media Framework

CVE-2023-40132 EoP High 1 2
跟上面的 CVE-2023-40108 是一个问题,不再重复解释了。这个补丁比上面那个补丁更早,是在运行在客户端的 RingtoneManager 里也加上文件类型检查,应该是给 com.android.dialer 或者其他 app 的情况用的。上面那个补丁应该也能覆盖这个漏洞的情况。

System

蓝牙开会了属于是
待分析漏洞:CVE-2024-49742 CVE-2024-49734

CVE-2024-43096 RCE Critical 1
蓝牙 GATT 协议栈 build_read_multi_rsp 函数中 MTU 等于 0 时的越界写入,补丁判断了这种情况直接返回。

CVE-2024-43770 RCE Critical
CVE-2024-43771 RCE Critical
CVE-2024-49747 RCE Critical
CVE-2024-49748 RCE Critical
1
四个漏洞都在 GATT 里,在四个不同的地方都没有检查 gatt_tcb_get_payload_size 的返回值是不是 0,而这个函数在 channel 已经被关闭的时候会返回 0,在后续造成越界写。
影响函数:
CVE-2024-43770 gatts_process_find_info
CVE-2024-43771 gatts_process_read_req
CVE-2024-49747 gatts_process_read_by_type_req
CVE-2024-49748 gatts_process_primary_service_req

CVE-2024-49749 RCE High 1
giflib 解析 gif 的过程中,判断 width 和 height 是否非法的 if 语句存在逻辑错误,变成了只有三项条件全部成立才认为文件非法,应该是三项条件里只要有一项成立就为非法。导致后续计算 size 的时候发生整数溢出进而越界写。

CVE-2024-34722 EoP High 1
蓝牙配对过程中的授权绕过问题,去年补丁就放过一次,看起来是没修复完

CVE-2024-34730 EoP High 1
蓝牙 HID 链接过程中的权限绕过问题

CVE-2024-43095 EoP High 1
改的地方很多,看起来是动态添加的权限相关的自动授权问题

In multiple locations, there is a possible way to obtain any system permission due to a logic error in the code. This could lead to local escalation of privilege with no additional execution privileges needed. User interaction is needed for exploitation.

1
2
3
4
5
Fix Dynamic Permission group auto grant behaivor
Fix the Dynamic Permission group auto grant behaivor so that a
permission group is only considered granted when (1) all permissions
were auto-granted or (2) a platform permission in the same group is
granted.

CVE-2024-43765 EoP High 1
悬浮窗覆盖漏洞再次限时回归。Document UI 这个 app 里隐藏遮盖窗体,防止点击劫持。

CVE-2024-43763 DoS High 1
一个蓝牙的逻辑 bug,应该只会造成功能异常?

CVE-2024-49736 DoS High 1
禁止在 DSU 模式下恢复出厂设置。可能是因为 DSU 用的 data 不一样,所以不会再要求输入一遍锁屏密码?