
# Ricerca completa sullo sfruttamento di CVE-2026-43499 (GhostLock) su OPPO Watch 3 Pro, inclusa l'analisi UAF del kernel, il disassemblaggio e lo sviluppo della catena di exploit con report dettagliati.
Ricerca completa sullo sfruttamento di CVE-2026-43499 (GhostLock, rtmutex/futex-PI stack UAF) su OPPO Watch 3 Pro (OWW211, ColorOS Watch versione cinese, Android 11, ARM32).
Conclusione finale: il meccanismo di scrittura a catena su OPPO 00522 (rtmutex ricostruito su msm-5.4) va in crash al momento del trigger, rendendo impossibile lo sfruttamento. Tutti i metodi di trigger (T2 requeue / sched_setattr) verificati su dispositivo reale causano panic; inoltre i nodi di trigger
/proc/switch/{lcd,mt,tp}sono tutti bloccati da SELinux. La ricerca sul meccanismo è stata conservata integralmente come riferimento per kernel non msm / dispositivi non patchati.
| Directory/File | Descrizione |
|---|---|
ghostlock_repo/ | Codice sorgente completo dell'exploit + binario ARM32 precompilato + README dettagliato |
ghostlock_oppo_report.md | Report completo della catena di sfruttamento |
ghostlock_deepcopy_report_v2.md | Disassemblaggio approfondito dello stamp su stack profondo (corregge l'errore di direzione del vecchio report) |
ghostlock_depth_report.md | Analisi approfondita di freed_waiter |
ghostlock_write_target_00522_report.md | Analisi del target di scrittura a catena (fops scrivibili in .data) |
_rev/ | Analisi delle vulnerabilità kgsl (CVE-2022-22057 UAF / map_user_mem TOCTOU, entrambe patchate) |
symbols_00522.txt | Tabella simboli kallsyms del kernel 00522 (unica al mondo) |
heota_query.py | Simulazione del protocollo OPPO HeyOTA (AES-CTR, estrae il firmware 00522 dal server) |
decode_kallsyms.py | Script di decodifica kallsyms |
*_dis.txt / *_scan*.py | Registrazioni di disassemblaggio e script di scansione approfondita |
freed_rt_waiter 0xE8 (relativa a sp_svc del thread W)prctl(PR_SET_NAME) strncpy su stack profondo D=0xD0 → stamp fase-1 (copre +0x18..+0x27)fremovexattr strncpy su stack profondo D=0x12C → stamp fase-2 (copertura totale)recvmsg D effettivo = 0xC0 (il 0x108 del vecchio report era un errore di direzione/profondità)FAKE_LOCK=0xC1ABA338 → scrittura nello slot unlocked_ioctl 0xC1ABA33Crt_mutex_adjust_prio_chain (0xc0196c4c) nella versione ricostruita su msm
esegue unlock(task + orig_lock) → qualsiasi trigger reale della catena causa inevitabilmente panic| Voce | Valore |
|---|---|
| Modello | OPPO Watch 3 Pro (OWW211) |
| Sistema | ColorOS Watch versione cinese, Android 11 (RKQ1.211102.001) |
Questo progetto è destinato esclusivamente a scopi di apprendimento e ricerca. Può essere eseguito solo su dispositivi di vostra proprietà, con backup preventivo. Durante lo sfruttamento il dispositivo potrebbe andare in crash, riavviarsi o perdere dati. L'autore non è responsabile per qualsiasi conseguenza derivante da un uso improprio.
Uso a scopo di ricerca. Rispettare le leggi locali e le policy dei produttori di dispositivi.
| SoC | Snapdragon W5+ Gen 1 (SW5100/monaco), Adreno 702v2 |
| Kernel | 5.4.134-perf-00522-gb29f81177a79 (ARM32, senza KASLR) |
| Bootloader | Bloccato, sblocco OEM disabilitato |