
CVE-2025-21479 (Qualcomm Adreno GPU) vivo iQOO 11 Pro (PD2254) 재현 노트 - 승인된 연구
| 항목 | 값 |
|---|---|
| 기기 | vivo iQOO 11 Pro (PD2254 / V2254A) |
| 시스템 | Android 15, PD2254B_A_15.2.12.2.W10 |
| 커널 | 5.15.178-g3dc7c01077b8-dirty |
| SoC | Snapdragon 8 Gen 2 (SM8550 / kalama) |
| GPU | Adreno 740, OpenGL ES 3.2 [email protected] |
현재 방법의 제약으로 인해 런타임에 kallsyms를 추출하는 기능이 구현되지 않았으므로, 위 세 버전 외에는 이론적으로 모두 호환되지 않습니다.
GPU spray (SMMU 페이지 테이블 하이재킹, 27개 후보 물리 주소)
→ 임의 물리 메모리 읽기/쓰기
→ SELinux enforcing → permissive (selinux_state 물리 쓰기)
→ patch __arm64_sys_vhangup (syscall #58, Android에서 호출되지 않음)
GPU가 96바이트 stub 직접 쓰기 (commit_creds(prepare_kernel_cred(NULL)))
→ fork 자식 프로세스 → syscall(58) → uid=0
→ setexeccon: /proc/self/attr/exec = "u:r:shell:s0" 쓰기
→ exec root shell (uid=0, 도메인 = u:r:shell:s0)
실행:
adb push exploit /data/local/tmp/exploit
adb shell
chmod 755 /data/local/tmp/exploit
cd /data/local/tmp && ./exploit

Root 권한 관리:
find /data/app -type d | grep resukisu
/data/app/***/***/lib/arm64/libksud.so insmod kernelsu.ko
본 프로젝트는 보안 연구 및 학습 목적으로만 사용되며, 반드시 본인 소유의 기기에서만 테스트하십시오. 사용자는 본 프로젝트 사용으로 인해 발생하는 모든 결과(기기 손상, 데이터 손실 등을 포함하나 이에 한정되지 않음)에 대해 스스로 책임을 져야 합니다. 본 프로젝트를 어떠한 불법적인 용도로도 사용하지 마십시오.
| 기기 | 펌웨어 | 커널 | 바이너리 |
|---|
| iQOO 11 Pro (PD2254) | PD2254B_A_15.2.12.2.W10 | 5.15.178-g3dc7c01077b8-dirty | exploit_11pro |
| iQOO 11s (PD2304) | PD2304B_A_15.2.12.1.W10 | 5.15.178-g844f85161cd7-dirty | exploit_11s |
| iQOO 11 (PD2243) | PD2243B_A_15.2.16.1.W10 | 5.15.178-g0ae61da50a34-dirty | exploit_11 |