
# CVE-2026-43499 (GhostLock) OPPO Watch 3 Pro 전체 익스플로잇 연구 커널 UAF 분석, 디스어셈블리, 상세 보고서를 포함한 익스플로잇 체인 개발.
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/ | 전체 익스플로잇 소스 + 사전 컴파일 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 슬롯 0xC1ABA33C에 쓰기rt_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 비활성화 |
이 프로젝트는 학습 및 연구 목적으로만 사용됩니다. 소유한 기기에서만 실행해야 하며, 사전에 백업을 수행해야 합니다. 익스플로잇 과정에서 기기가 크래시, 재부팅, 데이터 손실이 발생할 수 있습니다. 저자는 어떠한 오용으로 인한 결과에도 책임을 지지 않습니다.
연구 목적입니다. 현지 법률 및 기기 제조업체 정책을 준수하시기 바랍니다.