
GhostLock (CVE-2026-43499) port do exploit de kernel para o firmware taiwanês do REDMI K90 Pro Max (myron, WPMTWXM) — offsets, guia de compilação, binário pré-compilado
Port do exploit de kernel GhostLock (CVE-2026-43499) para o firmware global/taiwanês do
POCO F8 Ultra / REDMI K90 Pro Max (codename myron, Snapdragon 8 Elite Gen 5 / SM8850).
Alvo: HyperOS OS3.0.6.0.WPMTWXM — kernel
6.12.23-android16-5-g5a0e85dd9db0-ab14499855-4k
Resumo em inglês abaixo / abaixo, resumo em inglês.
No mesmo aparelho, com o mesmo codename, o kernel da versão internacional/taiwanesa (WPMTWXM, ou seja, POCO F8 Ultra) e o da versão chinesa (WPMCNXM) não são o mesmo binary:
| ROM | kernel release | hora da compilação |
|---|---|---|
| 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*); a TW é o branch de integração próprio da Xiaomi+pgo +bolt +lto —
qualquer diferença de código embaralha completamente a disposição dos símbolosinit_task/init_cred diferem em 0x10000, selinux_state difere em 0x120c8 (deslocamentos não fixos)Exploits data-only como o GhostLock precisam dos endereços exatos daquela compilação específica, por isso todos os payloads calculados para a versão CN são inválidos na versão internacional. Este repo preenche exatamente a tabela de offsets que faltava para a versão internacional.
offsets/myron_tw/offsets.h — target completo da versão TW 3.0.6.0 (para uso com
JoinChang/ghostlock-oneplus)scripts/device_step1.sh — script de backup do ABL pós-root + flashing do unlock EFIghostlock já compilado (arm64)_text como base —
init_task.comm="swapper", init_cred.usage=4, init_uts_ns.release confere caractere a caractere com o uname.
Não é preciso root no aparelho para obter offsets confiáveis.task_struct 5184 bytes,
cred@0x900, pi_blocked_on@0xA18 etc., consistente com o STRUCT_OFFSETS_6_12 upstream.futex_wait_requeue_pi (frame 0x1c0, waiter@sp+0x80) e
core_sys_select (frame 0x1b0, stack_fds@sp+0x18) são idênticos aos do
Xiaomi 17 (pudding), já validados como funcionais → PSELECT_SHIFT=0.selinux_state.enforcing está em +0 e em +2; uma gravação de um único byte não corrompe o 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=-1Após o root, o aparelho da versão internacional pode ser desbloqueado pelo método de substituição do ABL (sem precisar de cota oficial): backup de abl_a/b →
flash do unlock EFI → fastboot com ABL de fábrica + spoof → restauração. O ABL de fábrica é extraído do abl.img da sua própria ROM TW 3.0.1.0 (este repo não hospeda arquivos de firmware proprietário da Xiaomi).
O scripts/device_step1.sh é a parte do processo executada no aparelho. Este processo não apaga os dados do usuário.
O firmware global do POCO F8 Ultra (REDMI K90 Pro Max) vem com uma compilação de kernel diferente
da do firmware CN (branch, config e layout PGO/BOLT diferentes), portanto todos os
offsets do GhostLock publicados pela comunidade — calculados em kernels CN ogki — erram o alvo em
dispositivos globais. Este repo fornece os offsets de target que faltavam para o
OS3.0.6.0.WPMTWXM (6.12.23-android16-5-g5a0e85dd9db0-ab14499855-4k),
extraídos estaticamente do pacote OTA oficial e validados por cruzamento
(kallsyms + BTF + leituras dentro da imagem), além de um binário pré-compilado nas Releases.
Os layouts das structs são idênticos aos da build CN; apenas os endereços dos símbolos diferem.
O layout do stack frame corresponde ao do Xiaomi 17 (pudding), já comprovadamente funcional.
Use apenas no seu próprio dispositivo. A vulnerabilidade é pública (divulgação exigida pelo kernelCTF); este port existe para que donos da variante global possam fazer root nos próprios celulares.
Apenas para pesquisa de segurança autorizada em seus próprios dispositivos. Nenhum resultado é garantido; o uso é por sua conta e risco.
policycap