
Recherche d'exploitation complète pour CVE-2026-43499 (GhostLock) sur OPPO Watch 3 Pro, incluant l'analyse UAF du noyau, le désassemblage et le développement de la chaîne d'exploitation avec des rapports détaillés.
Recherche d'exploitation complète de CVE-2026-43499 (GhostLock, UAF de pile rtmutex/futex-PI) sur l'OPPO Watch 3 Pro (OWW211, ColorOS Watch version chinoise, Android 11, ARM32).
Conclusion finale : le mécanisme d'écriture en chaîne déclenche un crash dès son activation sur l'OPPO 00522 (rtmutex réécrit en msm-5.4), rendant l'exploitation impossible. Toutes les méthodes de déclenchement (requeue T2 / sched_setattr) ont été vérifiées sur l'appareil et provoquent un panic ; de plus, les nœuds de déclenchement
/proc/switch/{lcd,mt,tp}sont tous bloqués par SELinux. L'étude du mécanisme est entièrement conservée, à titre de référence pour les noyaux non-msm / les appareils non corrigés.
| Répertoire/Fichier | Description |
|---|---|
ghostlock_repo/ | Code source complet de l'exploit + binaire ARM32 précompilé + README détaillé |
ghostlock_oppo_report.md | Rapport général sur la chaîne d'exploitation |
ghostlock_deepcopy_report_v2.md | Désassemblage approfondi du stamp de pile profonde (correction de l'erreur d'orientation du rapport précédent) |
ghostlock_depth_report.md | Analyse approfondie de freed_waiter |
ghostlock_write_target_00522_report.md | Analyse de la cible d'écriture en chaîne (fops inscriptibles .data) |
_rev/ | Analyse des vulnérabilités kgsl (UAF CVE-2022-22057 / TOCTOU map_user_mem, toutes deux corrigées) |
symbols_00522.txt | Table des symboles kallsyms du noyau 00522 (unique au monde) |
heota_query.py | Simulation du protocole OPPO HeyOTA (AES-CTR, extraction du firmware 00522 depuis le serveur) |
decode_kallsyms.py | Script de décodage kallsyms |
*_dis.txt / *_scan*.py | Enregistrements de désassemblage et scripts d'analyse approfondie |
freed_rt_waiter : 0xE8 (par rapport au sp_svc du thread W)prctl(PR_SET_NAME) strncpy de pile profonde D=0xD0 → stamp phase-1 (couvre +0x18..+0x27)fremovexattr strncpy de pile profonde D=0x12C → stamp phase-2 (couverture totale)recvmsg D réel = 0xC0 (le 0x108 de l'ancien rapport était une erreur d'orientation/profondeur)FAKE_LOCK=0xC1ABA338 → écriture dans l'emplacement unlocked_ioctl 0xC1ABA33Crt_mutex_adjust_prio_chain (0xc0196c4c) réécrit en msm
unlock(task + orig_lock) → tout déclenchement réel de chaîne provoque un panic| Élément | Valeur |
|---|---|
| Modèle | OPPO Watch 3 Pro (OWW211) |
| Système | ColorOS Watch version chinoise, Android 11 (RKQ1.211102.001) |
Ce projet est uniquement destiné à l'apprentissage et à la recherche. Il ne doit être exécuté que sur un appareil vous appartenant, avec une sauvegarde préalable. Pendant l'exploitation, l'appareil peut planter, redémarrer ou perdre des données. L'auteur décline toute responsabilité en cas de conséquences liées à une utilisation abusive.
À des fins de recherche. Veuillez respecter les lois locales et les politiques des fabricants d'appareils.
| SoC | Snapdragon W5+ Gen 1 (SW5100/monaco), Adreno 702v2 |
| Noyau | 5.4.134-perf-00522-gb29f81177a79 (ARM32, sans KASLR) |
| Bootloader | Verrouillé, déverrouillage OEM désactivé |