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,包含多种解题思路、时间复杂度、空间复杂度分析,在线阅读
相关推荐
2501_915106321 分钟前
App 怎么上架 iOS?从准备资料到开心上架(Appuploader)免 Mac 上传的完整实战流程指南
android·macos·ios·小程序·uni-app·iphone·webview
林晓lx27 分钟前
使用Git钩子+ husky + lint语法检查提高前端项目代码质量
前端·git·gitlab·源代码管理
王同学要变强1 小时前
【深入学习Vue丨第二篇】构建动态Web应用的基础
前端·vue.js·学习
科技峰行者1 小时前
安卓16提前发布能否改写移动生态格局
android
程序定小飞1 小时前
基于springboot的web的音乐网站开发与设计
java·前端·数据库·vue.js·spring boot·后端·spring
蒲公英少年带我飞1 小时前
Android NDK 编译 protobuf
android
Hello_WOAIAI1 小时前
2.4 python装饰器在 Web 框架和测试中的实战应用
开发语言·前端·python
FinClip1 小时前
凡泰极客亮相香港金融科技周,AI助力全球企业构建超级应用
前端
沐怡旸1 小时前
【底层机制】ART虚拟机深度解析:Android运行时的架构革命
android·面试
阿四2 小时前
【Nextjs】为什么server action中在try/catch内写redirect操作会跳转失败?
前端·next.js