今年 10 月份的时候,Android 安全公告用 CVE-2024-40676 的编号公布了一个很奇怪的 patch
AccountManagerService checkKeyIntent() 负责检查 account authenticator 传回的 intent,确保它安全再传回给 caller,防止 launch anywhere 漏洞。这个补丁看起来很暴力也很奇怪,直接 ban 了所有带有 content URI 的 intent,似乎完全不考虑兼容性。是什么样的漏洞才要上如此暴力的修复方法?
注:如下全是我的猜测,由于联系不到漏洞作者本人,无法确认这是否就是原本的问题。

之前一直在看的每月补丁分析的博客 https://wrlus.com/ 看起来是不再更新了,想了想反正自己每个月也要去追着看,干脆写一下分析得了,方便自己后面找。

本人很菜,分析的大部分都是 Java 层漏洞,大佬别骂我 QAQ

最初发表在我的 telegram 频道。每月补丁都会在此文中更新。

最后更新时间:2024/11/07 更新内容:更新 CVE-2024-40676

Android Property (属性系统)可谓是 Android 中使用最广泛的进程间信息共享机制了,如 app 获取系统版本号,就是通过属性系统传递的信息;对于如此常用的底层机制,你可能知道 getprop SystemProperties __system_property_get 这些 API,但是,你真的了解它吗?这次,我们不但要会遵守规则用这些 API,我们还要成为规则的缔造者,让系统为我们服务!Let’s go!

之前研究art的时候发现了native bridge,简单来说这东西是主要作用就是为了能运行不同指令集的so(比如x86的设备运行arm的app),而arm设备上这个东西一般都是关闭的,研究了一下后发现这东西挺适合动手脚的,刚好自己在用的Riru被针对了,所以有了这篇博客。把对应的示例代码传到了github:NbInjection,接下来我们聊一下这个小玩具。

2018年发布的Android 9中引入了对隐藏API的限制,这对整个Android生态来说当然是一件好事,但也严重限制了以往我们通过反射等手段实现的“黑科技”(如插件化等),所以开发者们纷纷寻找手段绕过这个限制,比如我曾经提出了两个绕过方法,其中一个便是几乎完美的双重反射(即“元反射”,现在来看叫“套娃反射”比较好);而在即将发布的Android R中把这个方法封杀了(谷歌:禁止套娃!),因此我重新研究了Android R中的限制策略。

大家应该还记得我上次介绍的Dreamland吧,忘记了也没事,简单介绍一下:这是一个类似Xposed的框架,可以注入应用进程并进行方法hook。进程注入上次已经说过了,另一个重点hook当时是使用了SandHook框架,这是一款非常优秀的hook框架,但是有点问题,不太适合Dreamland;在比较了其他hook框架之后,发现似乎都存在一些问题,最终决定自己动手写一个。已经开源,代码在这:Pine,接下来我会介绍它的具体实现。