
GhostLock (CVE-2026-43499) REDMI K90 Pro Max 대만 펌웨어(myron, WPMTWXM)용 커널 익스플로잇 포트 — 오프셋, 빌드 가이드, 사전 빌드 바이너리
GhostLock (CVE-2026-43499) kernel exploit port for the global/Taiwan firmware of the
POCO F8 Ultra / REDMI K90 Pro Max (codename myron, Snapdragon 8 Elite Gen 5 / SM8850).
Target: HyperOS OS3.0.6.0.WPMTWXM — kernel
6.12.23-android16-5-g5a0e85dd9db0-ab14499855-4k
English summary below / 아래에 영문 요약이 있습니다.
같은 기기, 같은 codename이지만 국제/대만판(WPMTWXM, 즉 POCO F8 Ultra)과 중국판(WPMCNXM)의 커널은 같은 binary가 아니다:
| ROM | kernel release | 컴파일 시간 |
|---|---|---|
| 대만판 3.0.1.0.WPMTWXM | ...-ga5f232d1ead0-ab14083253-4k | 2025-09-11 |
| 대만판 3.0.6.0.WPMTWXM | ...-g5a0e85dd9db0-ab14499855-4k | 2025-11-26 |
| 중국판 3.0.306/308.WPMCNXM | ...-g16e473de48a3-abogki462654244-4k | 2025-11-19 |
abogki*)를 추적하고, 대만판은 Xiaomi 자체 통합 브랜치를 사용한다+pgo +bolt +lto로 컴파일된다——코드가 조금만 달라도 심볼 배치가 완전히 뒤섞인다init_task/init_cred는 0x10000, selinux_state는 0x120c8 차이(고정 오프셋이 아님)GhostLock 같은 data-only exploit은 해당 빌드의 정확한 주소가 필요하므로, 중국판 기준으로 계산된 모든 payload는 국제판에서 전부 무효다. 이 repo는 국제판에 빠져 있는 오프셋 테이블을 보충한다.
offsets/myron_tw/offsets.h — 대만판 3.0.6.0용 전체 target(JoinChang/ghostlock-oneplus 용)scripts/device_step1.sh — root 후 ABL 백업 + unlock EFI 플래싱 스크립트ghostlock binary(arm64)가 있다_text를 기준으로 binary를 다시 읽어 교차 검증——init_task.comm="swapper", init_cred.usage=4, init_uts_ns.release가 uname과 문자 단위로 일치한다. 실기기 root 없이도 신뢰할 수 있는 오프셋을 확보할 수 있다.task_struct 5184 bytes, cred@0x900, pi_blocked_on@0xA18 등이 업스트림 STRUCT_OFFSETS_6_12와 일치한다.futex_wait_requeue_pi(frame 0x1c0, waiter@sp+0x80)와 core_sys_select(frame 0x1b0, stack_fds@sp+0x18)가 검증된 Xiaomi 17 (pudding)과 완전히 동일 → PSELECT_SHIFT=0.selinux_state.enforcing은 +0, policycap은 +2에 있어, 단일 byte 쓰기로 policycap을 망가뜨리지 않는다.git clone https://github.com/JoinChang/ghostlock-oneplus.git
cd ghostlock-oneplus
cp /path/to/this-repo/offsets/myron_tw/offsets.h src/devices/myron_tw/offsets.h
# 在 src/devices/offsets.h 的 #include 清單加一行:
# #include "myron_tw/offsets.h"
make NDK_CC=<你的 NDK>/toolchains/llvm/prebuilt/*/bin/aarch64-linux-android35-clang
adb shell uname -r
# 必須是 6.12.23-android16-5-g5a0e85dd9db0-ab14499855-4k,否則程式會拒絕執行
adb push ghostlock /data/local/tmp/e
adb shell chmod 755 /data/local/tmp/e
adb shell /data/local/tmp/e
PSELECT_SHIFT=-1 등으로 미세 조정국제판 기기는 root 후 ABL 교체 방식으로 언락할 수 있다(공식 할당량 불필요): abl_a/b 백업 → unlock EFI 플래싱 → fastboot로 출고 ABL + spoof 플래싱 → 복원. 출고 ABL은 자신이 보유한 대만판 3.0.1.0 ROM의 abl.img에서 가져온다(본 repo는 Xiaomi 독점 펌웨어 파일을 포함하지 않는다). scripts/device_step1.sh는 이 절차의 기기 측 부분이다. 이 절차는 사용자 데이터를 지우지 않는다.
The global firmware of the POCO F8 Ultra (REDMI K90 Pro Max) ships a different kernel build
than the CN firmware (different branch, config, and PGO/BOLT layout), so all
community-published GhostLock offsets — computed on CN ogki kernels — miss on
global devices. This repo provides the missing target offsets for
OS3.0.6.0.WPMTWXM (6.12.23-android16-5-g5a0e85dd9db0-ab14499855-4k),
statically extracted from the official OTA package and cross-validated
(kallsyms + BTF + in-image reads), plus a prebuilt binary in Releases.
Struct layouts are identical to the CN build; only symbol addresses differ.
Stack-frame layout matches the verified-working Xiaomi 17 (pudding).
Use only on your own device. The vulnerability is public (kernelCTF-mandated disclosure); this port exists so global-variant owners can root their own phones.
자신의 기기에 대한 승인된 보안 연구용으로만 제공된다. For authorized security research on your own devices only. 결과는 보장하지 않으며, 사용에 따른 위험은 사용자가 부담한다.