
CVE-2026-43499 (GhostLock) adaptación para ASUS ROG Phone 5S — disparador UAF + recuperación de pila pselect, fuga de KASLR bloqueada
Estudio de adaptación de CVE-2026-43499 (GhostLock) en ASUS ROG Phone 5S (ASUS_I005).
Conclusión: la activación del fallo y la recuperación de pila están completamente verificadas; la cadena de escalada de privilegios no se completó debido a una profundidad de cobertura de pila insuficiente.
En concreto:
waiter+0x28..0x40 (pi_tree_entry.rb_left y lock)waiter+0x27El análisis detallado se encuentra en docs/05-limitations.md.
| Fase | Contenido | Estado |
|---|---|---|
| 0 | Disparo de UAF (3 hilos + CMP_REQUEUE_PI) | ✅ |
| 1 | Recuperación de pila con pselect timeout=0 (shift=10) | ✅ |
| 1.6 | Fuga de SP de la pila del kernel de W (perf PERF_SAMPLE_REGS_INTR) | ✅ |
| 2 | Escritura en dirección arbitraria (requiere KASLR slide) | ❌ |
| — | Fuga de KASLR (las 8 fuentes fallaron todas) | ❌ |
| Elemento | Valor |
|---|---|
| Dispositivo | ASUS ROG Phone 5S (ASUS_I005) |
| SoC | Snapdragon 888 (SM8350) |
| Android | 13 |
| Kernel | 5.4.210-qgki-perf-gc89cd02a7dfe arm64 |
| SELinux | Enforcing (u:r🐚s0) |
| CapEff | 0 |
CVE-2026-43499 (GhostLock) es un UAF de pila en el subsistema rtmutex del kernel de Linux.
remove_waiter() utiliza current en lugar de waiter->task en la ruta de reversión del bloqueo proxy,
lo que provoca que task_struct->pi_blocked_on conserve un puntero colgante.
_copy_from_user se sigue ejecutandoPSELECT_WAITER_WORD_SHIFT = 10Véase docs/05-limitations.md:
docs/ Documentación de análisis y cronología
06-research-snapshot.md Instantánea completa de la investigación07-iteration-log.md Registro de versiones fallidasdisasm/ Fragmentos clave de desensambladorecon/ Salida de reconocimientoinclude/ Tabla de símbolos + desplazamientos de estructurassrc/ Código fuente del PoC (véase src/README.md)scripts/ Scripts de análisislogs/ Registros de ejecución (no incluidos en git)# 1. Extraer símbolos y desplazamientos (requiere vmlinux compilado a partir del código fuente oficial del kernel de ASUS)
./scripts/extract_symbols.sh
./scripts/gen_symbols_h.sh
./scripts/extract_offsets.sh
# 2. Compilar Stage 0
aarch64-linux-gnu-gcc -static -O2 -pthread \
-o ~/tmp/work/bin/poc_stage0_trigger src/poc_stage0_trigger.c
# 3. Ejecutar en el dispositivo (requiere adb shell al dispositivo objetivo)
adb shell /data/local/tmp/poc_stage0_trigger
Toolchain: aarch64-linux-gnu-gcc -static -O2 -pthread
Referencias
· gitchw/ghostlock-cve-2026-43499 Huawei Watch 4 Pro, 5.4.210 (ARM32)
· ccp-p/ghostlock-cve-2026-43499-4.19-k40 Redmi K40, 4.19.157 (aarch64)
· JoinChang/ghostlock-oneplus varios dispositivos OnePlus, viabilidad del diseño de pila
· knowlily/cve-2026-43499-honor análisis de fallo en Honor
Descargo de responsabilidad
Solo para investigación de seguridad. No utilizar en dispositivos no autorizados.