
Sharp AQUOS R7(CVE-2026-43499)을 위한 기기별 Linux 5.10 커널 루트 익스플로잇으로, SELinux permissive 상태와 su 데몬을 통해 임시 UID 0 권한을 부여합니다.
Sharp AQUOS R7을 위한 GhostLock(CVE-2026-43499)의 기기별 Linux 5.10 포팅입니다. 검증된 대상은 Android 14 빌드 03.00.06, 커널 5.10.218-android12-9-00041-g124993efd06e-ab12385094(SM8450)를 실행하는 AQUOS R7(Mineva, SGA202SH/A202SH)입니다.
이것은 aquos-r6-ghostlock(AQUOS R6, 커널 5.4.61-qgki)의 포팅입니다. 모든 상수 — KASLR 처리, selinux_state 누출 윈도우, task/cred 오프셋, zero-BSS 스크래치 영역 — 는 R7 커널에 대해 재도출되고 검증되었으며, R6 스택 구조는 시작 참조로만 사용되었습니다.
성공적으로 실행되면 SELinux permissive 상태에서 UID 0을 얻고 작은 su 명령 데몬을 시작합니다. 전체 Linux capability 집합을 부여하지는 않으며 변경 사항은 지속되지 않습니다. 재부팅하면 스톡 커널 상태로 복원됩니다.
aarch64-linux-android29를 대상으로 하는 Android NDK clang이 필요합니다(NDK r30으로 테스트됨):
make build/ghostlock510 # ~3.4 MB static binary
make strip # optional; ~0.6 MB, same behaviour
재현성: 이 소스를 위 툴체인으로 빌드한 결과는 모든 온디바이스 테스트에 사용된 바이너리와 바이트 단위로 동일합니다(MD5 fa896ebd361519766b46cc2bab70dea2). 릴리스 에셋은 바로 그 바이너리를 llvm-strip한 형태입니다(598,672 바이트, SHA-256 d3056b65380da9fda68bc1891a08c6028ee1cbdb39ff2c3ca136b703f1b0bef7).
바이너리(릴리스 에셋 또는 직접 빌드한 것)를 푸시하고 한 번 실행합니다:
adb push ghostlock510 /data/local/tmp/ghostlock510
adb shell chmod 755 /data/local/tmp/ghostlock510
adb shell "setsid nohup /data/local/tmp/ghostlock510 \
--use-setattr --stamp3 --perm-pc --cred-swap --install-su \
--stamp-off 0xf0 --log /data/local/tmp/ghostlock510.log \
</dev/null >/dev/null 2>&1 &"
설치된 su 클라이언트를 사용하여 루트 명령을 실행합니다(전체 경로 필요):
adb shell "/data/local/tmp/su -c 'id; getenforce'"
# uid=0(root) gid=2000(shell) groups=2000(shell) context=u:r:kernel:s0
# Permissive
su는 루프백 TCP(포트 9999)를 통해 익스플로잇의 데몬과 통신하며, 지속적인 루트 셸은 연결되지 않습니다. 명령은 줄 기반이며, su 안에 su를 중첩하는 것은 작동하지 않습니다. 대화형 프로그램(vi, top, …)은 PTY를 필요로 합니다. 데몬 위에 대화형 su 모드를 구현하는 것은 향후 과제로 남겨둡니다.
이 정확한 빌드에서 측정한 결과(VERIFICATION.md 참조):
따라서: 재부팅하고, ghostlock510을 한 번 실행하고, 해당 세션이 살아 있는 동안 다시 실행하지 마십시오. 재부팅이 정리 경로입니다.
대용량 외부 입력은 이 저장소에 의도적으로 포함되지 않았습니다:
vmlinux/System.map에서 가져왔으며, 기기에서 실제로 실행 중인 커널과의 바이트 단위 동일성은 해당 boot_a 이미지를 통해 검증되었습니다.--stamp3 / --use-setattr 접근 방식은
여기에서 영감을 받았습니다(해당 저장소에는 라이선스가 명시되지 않음).