
GhostLock (CVE-2026-43499)은 RootMyVivo Neo용 익스플로잇 포크입니다 — iQOO Neo 11 (PD2520, SM8750, 6.6.89). 본인 소유 기기에 대한 승인된 연구 목적으로만 사용하십시오.
boxiaolanya2008/CVE-2026-43499-Neo11Plus의 포크로, RootMyVivo에 맞게 재작업되었습니다. 루팅 후 기기를 망가뜨리던 모든 요소를 제거하고, 검증된 타이밍을 가진 익스플로잇 코어만 남겼습니다.
| 디렉터리 | 기기 | 커널 | 오프셋 출처 |
|---|---|---|---|
PD2520-BP2A.250605.031.A3 | iQOO Neo 11 | 6.6.89 | 자체 boot.img의 kallsyms+BTF, 실기 검증 완료 |
PD2520-A-16.0.28.2 | iQOO Neo 11 | 6.6.127 | boot_b의 kallsyms |
I2401-16.1.22.2 | iQOO 13 (India) | 6.6.89 | AmarnathCJD/IQOO13-Root |
PD2426-BP2A.250605.031.A3 | iQOO Neo10 Pro | 6.6.89 (gf2) | sgswzglwlx/vivo-root-build |
PD2415-BP2A.250605.031.A3 | vivo X200 | 6.6.89 (b57) | xiaohj233/ghostlock-x200-root — 동일 바이너리가 b57의 Neo10 Pro에도 적합 |
PD2405-AP3A.240905.015.A1 | vivo X200 Pro | 6.6.89 | CyberMeowfia |
새 기기 = src/targets/에 새 디렉터리: target.h (오프셋) + root.c (검증된 최종본, 그대로 복사).
| 컴포넌트 | 이유 |
|---|---|
| 배경화면 변경 + system_server 종료 | "임의의" 소프트 리부트와 배경화면 변조의 원인 |
| 포트 39555의 io 데몬 | 디버그용 kernelapp에만 필요했음 |
| /apex/com.android.virt의 tmpfs 오버레이 | 소프트 리부트 시 zygote를 멈춤 (검은 화면) |
| Boot 서비스 10-neo11-su.sh | 고정은 앱이 수행 |
| 타 기기 오프셋 테이블 | 이제 대상별 디렉터리로 자체 관리 |
익스플로잇 코어 (futex PI UAF → pselect fake lock → heap spray → pipe physrw → root)와 posture (panic_on_oops=0, kptr_restrict, AVC 오염)는 변경되지 않았습니다.
업스트림 위에 추가된 것: safety_quiesce (PI 경로 전에 loadavg < 4 대기), cred-guard (쓰기 전 주소 정규성 검사), 새 fork에서 최대 3회 재시도 루프. 환경 변수 제어: RMV_ATTEMPTS, RMV_RETRY_DELAY.
패닉이 발생하는 근본 원인: INIT_STACK_ALL_ZERO가 스택을 덮어써 fake waiter를 깨뜨림 — quiesce+retry로 해결; reclaim 실패 후의 쓰레기 대상 — cred-guard; 스톡의 panic_on_oops=1 — posture가 루트 직후 끄며, 그 전까지는 신중함만이 구제책입니다.
Windows, NDK r29:
build_ports.bat # все порты
build_ports.bat I2401-16.1.22.2 # одна цель
build-win.bat # PD2520 6.6.89
Termux를 통한 기기에서도 가능합니다 — Makefile 참조.
출력: build/<target>/bin/preload.so (~140 KB). 실행: shell 도메인에서 LD_PRELOAD=$PWD/preload.so /system/bin/true.
모든 값은 P0_PHYS_OFFSET과 P0_KERNEL_PHYS_LOAD로부터 P0_DATA_ALIAS_CONST를 통해 자동으로 계산됩니다. Qualcomm SM8750: 0x80000000/0xa8000000. MediaTek Dimensity 9400: 0x80000000/0x80000000. 잘못된 값이 패닉을 일으키지는 않습니다 — 슬라이드가 단순히 맞지 않을 뿐입니다.
CVE는 6.1.175 / 6.6.140 / 6.12.86에서 패치되었습니다. 그러나 호환성은 버전만으로 결정되지 않습니다: do_futex 스택에서 rt_mutex_waiter의 위치는 PGO/LTO 빌드에 따라 달라집니다. 자세한 분석은 JoinChang/ghostlock-oneplus를 참조하세요: OPLUS 6.1에서는 do_futex가 인라인되어 익스플로잇이 불가능하지만, vivo 6.1에서는 유효합니다. 포팅에 착수하기 전에 프레임을 확인하세요.
오직 승인된 연구 및 본인 소유 기기에서만 사용하세요.