
Complete exploit research for CVE-2026-43499 (GhostLock) on OPPO Watch 3 Pro, including kernel UAF analysis, disassembly, and exploit chain development with detailed reports.
对 OPPO Watch 3 Pro (OWW211, ColorOS Watch 国行, Android 11, ARM32) 上 CVE-2026-43499 (GhostLock, rtmutex/futex-PI 栈 UAF) 的完整利用研究。
最终结论:链走写入机制在 OPPO 00522 (msm-5.4 重构版 rtmutex) 上触发即崩溃, 无法完成利用。所有触发方式(T2 requeue / sched_setattr)实机验证均 panic; 且
/proc/switch/{lcd,mt,tp}触发节点被 SELinux 全部拦截。机制研究完整 保留,供非 msm 内核 / 未修复设备参考。
| 目录/文件 | 说明 |
|---|---|
ghostlock_repo/ | 完整 exploit 源码 + 预编译 ARM32 二进制 + 详细 README |
ghostlock_oppo_report.md | 利用链总报告 |
ghostlock_deepcopy_report_v2.md | 深栈 stamp 深度反汇编实测 (修正旧报告方向错误) |
ghostlock_depth_report.md | freed_waiter 深度分析 |
ghostlock_write_target_00522_report.md | 链走写入目标 (.data 可写 fops) 分析 |
_rev/ | kgsl 漏洞分析 (CVE-2022-22057 UAF / map_user_mem TOCTOU, 均已修复) |
symbols_00522.txt | 00522 内核 kallsyms 符号表 (全网唯一) |
heota_query.py | OPPO HeyOTA 协议模拟 (AES-CTR, 从服务器提取 00522 固件) |
decode_kallsyms.py | kallsyms 解码脚本 |
*_dis.txt / *_scan*.py | 反汇编记录与深度扫描脚本 |
freed_rt_waiter 深度 0xE8 (相对 W 线程 sp_svc)prctl(PR_SET_NAME) 深栈 strncpy D=0xD0 → phase-1 stamp (覆盖 +0x18..+0x27)fremovexattr 深栈 strncpy D=0x12C → phase-2 stamp (全覆盖)recvmsg 实际 D=0xC0 (旧报告 0x108 是方向/深度错误)FAKE_LOCK=0xC1ABA338 → 写 unlocked_ioctl 槽 0xC1ABA33Crt_mutex_adjust_prio_chain (0xc0196c4c) 的 [7]/out
路径 unlock(task + orig_lock) → 任何真实链走触发必 panic| 项目 | 值 |
|---|---|
| 型号 | OPPO Watch 3 Pro (OWW211) |
| 系统 | ColorOS Watch 国行, Android 11 (RKQ1.211102.001) |
| SoC |
本项目仅用于学习和研究。只能在您拥有的设备上运行,且应提前备份。利用过程 中设备可能崩溃、重启、数据丢失。作者不对任何滥用造成的后果负责。
研究用途。请遵守当地法律与设备厂商政策。
| Snapdragon W5+ Gen 1 (SW5100/monaco), Adreno 702v2 |
| 内核 | 5.4.134-perf-00522-gb29f81177a79 (ARM32, 无 KASLR) |
| Bootloader | 锁定, OEM unlock 禁用 |