
GhostLock (CVE-2026-43499) kernel exploit port for REDMI K90 Pro Max Taiwan firmware (myron, WPMTWXM) — offsets, build guide, prebuilt binary
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.
Same phone, same codename — but the international/Taiwan build (WPMTWXM, i.e. the POCO F8 Ultra) and the mainland China build (WPMCNXM) do not share the same kernel binary:
| ROM | kernel release | build time |
|---|---|---|
| TW 3.0.1.0.WPMTWXM | ...-ga5f232d1ead0-ab14083253-4k | 2025-09-11 |
| TW 3.0.6.0.WPMTWXM | ...-g5a0e85dd9db0-ab14499855-4k | 2025-11-26 |
| CN 3.0.306/308.WPMCNXM | ...-g16e473de48a3-abogki462654244-4k | 2025-11-19 |
abogki*); the TW build is Xiaomi's own integration branch+pgo +bolt +lto — any code difference scrambles the whole symbol layoutinit_task/init_cred differ by 0x10000, selinux_state by 0x120c8 (not a fixed offset)Data-only exploits like GhostLock need the exact addresses of a specific build, so every payload computed for the CN build is invalid on the international build. This repo supplies the offset table the international build was missing.
offsets/myron_tw/offsets.h — the complete target for TW 3.0.6.0 (for use with
JoinChang/ghostlock-oneplus)scripts/device_step1.sh — post-root ABL backup + unlock EFI flashing scriptghostlock binaries (arm64) are in Releases_text as the base — init_task.comm="swapper", init_cred.usage=4, and init_uts_ns.release
match uname character-for-character. Reliable offsets can be obtained without rooting a device.task_struct is 5184 bytes,
cred@0x900, pi_blocked_on@0xA18, etc., matching upstream STRUCT_OFFSETS_6_12.futex_wait_requeue_pi (frame 0x1c0, waiter@sp+0x80) and
core_sys_select (frame 0x1b0, stack_fds@sp+0x18) are exactly the same as on the
verified-working Xiaomi 17 (pudding) → PSELECT_SHIFT=0.selinux_state.enforcing is at +0 and at +2, so a single-byte write won't corrupt 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=-1Once rooted, the international device can be unlocked via the ABL replacement method (no official
quota needed): back up abl_a/b → flash the unlock EFI → fastboot-flash the stock ABL + spoof →
restore. The stock ABL is taken from the abl.img of your own TW 3.0.1.0 ROM (this repo does
not host Xiaomi proprietary firmware files). scripts/device_step1.sh is the on-device part of
this flow. This flow does not wipe user data.
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. No guarantees of any result; use at your own risk.
policycap