
Investigación completa de explotación para CVE-2026-43499 (GhostLock) en OPPO Watch 3 Pro, incluyendo análisis de UAF en el kernel, desensamblado y desarrollo de la cadena de explotación con informes detallados.
Investigación de explotación completa de CVE-2026-43499 (GhostLock, UAF de pila rtmutex/futex-PI) en el OPPO Watch 3 Pro (OWW211, ColorOS Watch versión china, Android 11, ARM32).
Conclusión final: el mecanismo de escritura en cadena se bloquea al activarse en OPPO 00522 (rtmutex reconstruido en msm-5.4), por lo que no se puede completar la explotación. Todos los métodos de activación (T2 requeue / sched_setattr) verificados en el dispositivo real provocan panic; además, los nodos de activación
/proc/switch/{lcd,mt,tp}están completamente bloqueados por SELinux. La investigación del mecanismo se conserva íntegramente como referencia para kernels que no sean msm / dispositivos sin parchear.
| Directorio/Archivo | Descripción |
|---|---|
ghostlock_repo/ | Código fuente completo del exploit + binario ARM32 precompilado + README detallado |
ghostlock_oppo_report.md | Informe general de la cadena de explotación |
ghostlock_deepcopy_report_v2.md | Desensamblado real en profundidad del stamp de pila profunda (corrige el error de dirección del informe anterior) |
ghostlock_depth_report.md | Análisis en profundidad de freed_waiter |
ghostlock_write_target_00522_report.md | Análisis del objetivo de escritura en cadena (fops escribibles en .data) |
_rev/ | Análisis de vulnerabilidades de kgsl (CVE-2022-22057 UAF / TOCTOU de map_user_mem, ambos parcheados) |
symbols_00522.txt | Tabla de símbolos kallsyms del kernel 00522 (única en todo el mundo) |
heota_query.py | Simulación del protocolo OPPO HeyOTA (AES-CTR, extrae el firmware 00522 del servidor) |
decode_kallsyms.py | Script de decodificación de kallsyms |
*_dis.txt / *_scan*.py | Registros de desensamblado y scripts de escaneo en profundidad |
freed_rt_waiter: 0xE8 (relativa a sp_svc del hilo W)prctl(PR_SET_NAME) strncpy de pila profunda D=0xD0 → stamp de fase 1 (cubre +0x18..+0x27)fremovexattr strncpy de pila profunda D=0x12C → stamp de fase 2 (cobertura completa)recvmsg D real = 0xC0 (el 0x108 del informe anterior era un error de dirección/profundidad)FAKE_LOCK=0xC1ABA338 → escribe en la ranura unlocked_ioctl 0xC1ABA33Crt_mutex_adjust_prio_chain (0xc0196c4c) reconstruida en msm ejecuta unlock(task + orig_lock) → cualquier activación real de la cadena provoca panic| Elemento | Valor |
|---|---|
| Modelo | OPPO Watch 3 Pro (OWW211) |
| Sistema | ColorOS Watch versión china, Android 11 (RKQ1.211102.001) |
Este proyecto es solo para fines de aprendizaje e investigación. Solo debe ejecutarse en dispositivos de su propiedad y debe realizar una copia de seguridad con antelación. Durante el proceso de explotación, el dispositivo puede bloquearse, reiniciarse o perder datos. El autor no se hace responsable de las consecuencias derivadas de un uso indebido.
Con fines de investigación. Respete las leyes locales y las políticas del fabricante del dispositivo.
| SoC | Snapdragon W5+ Gen 1 (SW5100/monaco), Adreno 702v2 |
| Kernel | 5.4.134-perf-00522-gb29f81177a79 (ARM32, sin KASLR) |
| Bootloader | Bloqueado, desbloqueo OEM deshabilitado |