Android 新漏洞,可远程控制用户的手机

Android 用户要注意了,最近各个厂商应该会有一个新版本的补丁发布,用于修复一个高严重性漏洞,该漏洞无需额外的执行权限,可允许黑客在 Android 手机上运行恶意代码,操控你的手机。

谷歌于本周一宣布修复 Android 中的 46 个漏洞,其中包括一个导致远程代码执行的严重错误。

该漏洞编号为 CVE-2024-0031,影响 Android 开源项目 (AOSP) 版本 11、12、12L、13 和 14。

该漏洞已作为 Android 2024-02-01 安全补丁级别的一部分得到解决,总共解决了 15 个安全缺陷。

其余 14 个问题均为导致特权提升或信息泄露的高严重性漏洞。其中九个错误影响框架组件,而其余五个则影响 Android 的系统组件。

谷歌在其公告中解释说:"这些问题中最严重的是系统组件中的一个关键安全漏洞,该漏洞可能导致远程代码执行,而无需额外的执行权限。" 因此 Android 用户如果收到了系统补丁更新,尽快安装更新。

到目前为止谷歌尚未公布是否有攻击者利用这个漏洞进行攻击,但这个漏洞我感觉在过不久会被国内某些大厂利用。

还记得去年某大厂利用一个 2014 年公开的 ParceledListSlice 漏洞,绕过系统校验,远程操控用户的手机事件吗,我写过好几篇文章去分析,但是文章已经被删除了,应该说对他们有影响的文章,都已经被删除,在网上基本已经找不到。

该 APP 利用了 Android Parcel 序列化和反序列化不匹配漏洞,绕过系统校验,将普通应用权限 提升到系统权限,收集更多用户的信息,甚至可以随意操控用户的手机,做更多他们想做的事,而且一旦安装,就很难删除

什么是序列化和反序列化不匹配?

在 Android 中通过 Parcelable 序列化对象,而实现 Parcelable 接口,需要实现 readFromParcelwriteToParcel 函数。

typescript 复制代码
public void writeToParcel(Parcel dest, int flags) {
    dest.writeLong(txPower);
}
private void readFromParcel(Parcel in) {
    txPower = in.readInt();
}

对变量 txPower 在写入的时候通过 writeLong 方法写入,但是在读取的时候通过 readInt 方法读取。这就是序列化和反序列化不匹配。

某大厂就是利用该漏洞,绕过系统的 checkIntent 检查,如果想绕过系统检查,需要在 Bundle 中精确布置数据。我们以 CVE-2017-13288 漏洞为例子:

  • 普通 AppB 传递一个 Bundle 对象到 system_server 进程,这个 Bundle 对象中包含的一个恶意键值对 {KEY_INTENT:intent}
  • system_server 进程中进行反序列化,将恶意 KEY_INTENT 的内容读入到 mData 中,此时,恶意 KEY_INTENT 不是一个单独的键值对,因此可以逃避系统的 checkIntent 检查
  • system_server 进程中再次将这个 Bundle 序列化,此时通过 writeLong 方法写入到 Bundle 中,因此为占据 8 个字节
  • 最终会传递到 Settings 系统应用(高权限 system 用户),在反序列化过程中,通过 readInt 方法进行读取,发生了 4 个字节的错位,因此把后面恶意 KEY_INTENT 的 4 字节 length (ByteArray 4 字节对齐)当做 mData

至此,键值对反序列化完成,恶意 KEY_INTENT 作为一个新的键值对就堂而皇之的出现了。这样就可以绕过系统的 checkIntent 检查,为所欲为,比如在 KEY_INTENT 中指定 Settings 中的 com.android.settings.password.ChooseLockPassword 为目标 Activity, 则可以在不需要原锁屏密码的情况下重设锁屏密码。

全文到这里就结束了,感谢你的阅读,欢迎在看、点赞、分享给身边的小伙伴,你的点赞是我持续更新的动力。

鸿蒙还处于初期发展阶段,网上对鸿蒙问题的解答太少了,所以建了一个鸿蒙学习交流群,群里有很多大佬,相比于自己去摸索,通过与大家的沟通交流,效率会提高很多。诚邀各位小伙伴一起来打造一个良好的学习氛围沟通群。我在学习过程中也遇到了不少问题,有兴趣的小伙伴,可以看一下这篇文章,列举了我遇到的鸿蒙安装编译常见问题,以及解决方案。

目前群成员已经超过 200 人,不能扫描加入,喜欢或者正在学习鸿蒙的小伙伴,欢迎私信我,我拉你进群。

2024,加油!

2024,一起见证彼此成长!

同时我在 github 上新建了一个 HarmonyPractice 仓库,这个仓库主要用于演示 ArkTS 语法规则、鸿蒙组件的使用,以及鸿蒙实战项目,欢迎点击 HarmonyPractice 仓库右上角 star 以兹鼓励。

HarmonyPractice:https://github.com/hi-dhl/HarmonyPractice


Hi 大家好,我是 DHL,在美团、快手、小米工作过。公众号:ByteCode ,分享有用的原创文章,涉及鸿蒙、Android、Java、Kotlin、性能优化、大厂面经,真诚推荐你关注我。


最新文章


开源新项目

  • 云同步编译工具(SyncKit),本地写代码,远程编译,欢迎前去查看 SyncKit
  • KtKit 小巧而实用,用 Kotlin 语言编写的工具库,欢迎前去查看 KtKit
  • 最全、最新的 AndroidX Jetpack 相关组件的实战项目以及相关组件原理分析文章,正在逐渐增加 Jetpack 新成员,仓库持续更新,欢迎前去查看 AndroidX-Jetpack-Practice
  • LeetCode / 剑指 offer,包含多种解题思路、时间复杂度、空间复杂度分析,在线阅读
相关推荐
草莓熊Lotso21 分钟前
Linux 文件描述符与重定向实战:从原理到 minishell 实现
android·linux·运维·服务器·数据库·c++·人工智能
恋猫de小郭27 分钟前
Flutter Zero 是什么?它的出现有什么意义?为什么你需要了解下?
android·前端·flutter
一只大侠的侠5 小时前
Flutter开源鸿蒙跨平台训练营 Day 10特惠推荐数据的获取与渲染
flutter·开源·harmonyos
工程师老罗7 小时前
如何在Android工程中配置NDK版本
android
崔庆才丨静觅7 小时前
hCaptcha 验证码图像识别 API 对接教程
前端
passerby60618 小时前
完成前端时间处理的另一块版图
前端·github·web components
掘了8 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅8 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅8 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
崔庆才丨静觅9 小时前
比官方便宜一半以上!Midjourney API 申请及使用
前端