
CVE-2025-21479: ZFlip5용 PoC, Knox가 방해하는 중!(˶˃ ᵕ ˂˶)
Image
GPU 임의 물리 읽기/쓰기 (CVE-2025-21479) -> KASLR 누출 -> SELinux 허용 모드 -> RKP 안전 init-hook 루트 서버 & DEFEX 우회 사용자 정의 바이너리 실행 (LD_PRELOAD)
약 6분 정도 걸립니다.. 인내심을 가지세요. 나중에 최적화하겠습니다.
Galaxy Z Flip 5 (SM-F731N)
펌웨어: F731NKSU5EYD9
Android: 15
보안 패치: 2025-04-01
SoC: Snapdragon 8 Gen 2 (SM8550 / kalama)
GPU: Adreno 740 v2
Galaxy Z Flip 5 (SM-F7310) — @eoegamer님의 테스트 및 구동 감사합니다!!
펌웨어: F7310ZCS4CXH2
Android: 14
SoC: Snapdragon 8 Gen 2 (SM8550 / kalama)
GPU: Adreno 740
GPU 펌웨어 패턴 사용:
xxd /vendor/firmware/a740_sqe.fw | grep -i "0300 422a"
일치하면 펌웨어가 취약한 것입니다.
; vulnerable firmware (v675)
and $04, $12, 0x3
; patched firmware (v676)
and $04, $12, 0x7
exploit.c는 F731NKSU5EYD9용으로 빌드되었습니다.
다른 펌웨어의 경우 먼저 port_extract.py로 다시 타겟팅하세요 (PORTING.md 참조)
# build exploit.c with the Android NDK (aarch64), e.g.:
# $NDK/toolchains/llvm/prebuilt/*/bin/aarch64-linux-android34-clang exploit.c -o cheese
adb push cheese /data/local/tmp/
adb shell 'chmod +x /data/local/tmp/cheese; /data/local/tmp/cheese'
부팅 시 한 번 실행하세요 (루트 서버는 지속되지 않습니다).
성공 시 루프백(127.0.0.1:4444)에 바인딩된 루트 toybox nc 리스너를 남깁니다. adb shell에서 루트 셸을 얻으세요:
adb shell
nc 127.0.0.1 4444 # root shell, uid=0 (u:r:sec_system_init_shell:s0)
순정 바이너리는 여전히 직접 실행할 수 있습니다.
문제는 DEFEX가 사용자 정의 네이티브 바이너리를 직접 실행할 때 차단한다는 것입니다.
따라서 대신 루트 셸에서 순정 호스트 프로세스에 주입된 LD_PRELOAD 라이브러리로 사용자 정의 코드를 실행하세요:
LD_PRELOAD=/data/local/tmp/test.so /system/bin/toybox true
__attribute__((constructor)) 엔트리로 test.so를 빌드하세요; 생성자가 순정 호스트 내에서 루트로 실행됩니다!
15분 이상 멈추면 재부팅하고 기기를 식히세요.
GPU 스프레이는 확률적입니다. 실패하면 재시도하거나 재부팅하세요.
소프트웨어 업데이트 비활성화
비활성화:
pm disable-user --user 0 com.sec.android.soagent
pm disable-user --user 0 com.wssyncmldm
다시 활성화:
pm enable --user 0 com.sec.android.soagent
pm enable --user 0 com.wssyncmldm
인가된 보안 연구 및 교육용으로만 사용하세요. 정확한 기기 및 펌웨어가 일치해야 합니다.