
CVE-2026-43499 (GhostLock) adattamento per ASUS ROG Phone 5S — trigger UAF + recupero stack pselect, leak KASLR bloccato
Studio di adattamento di CVE-2026-43499 (GhostLock) su ASUS ROG Phone 5S (ASUS_I005).
Conclusione: attivazione della vulnerabilità e recupero dello stack completamente verificati; la catena di escalation dei privilegi non è stata completata a causa della profondità insufficiente di sovrascrittura dello stack.
Nello specifico:
waiter+0x28..0x40 (pi_tree_entry.rb_left e lock)waiter+0x27Per l'analisi dettagliata vedere docs/05-limitations.md.
| Fase | Contenuto | Stato |
|---|---|---|
| 0 | Attivazione UAF (3 thread + CMP_REQUEUE_PI) | ✅ |
| 1 | Recupero stack pselect timeout=0 (shift=10) | ✅ |
| 1.6 | Perdita SP dello stack kernel W (perf PERF_SAMPLE_REGS_INTR) | ✅ |
| 2 | Scrittura su indirizzo arbitrario (richiede KASLR slide) | ❌ |
| — | KASLR leak (tutte le 8 sorgenti fallite) | ❌ |
| Voce | Valore |
|---|---|
| Dispositivo | ASUS ROG Phone 5S (ASUS_I005) |
| SoC | Snapdragon 888 (SM8350) |
| Android | 13 |
| Kernel | 5.4.210-qgki-perf-gc89cd02a7dfe arm64 |
| SELinux | Enforcing (u:r🐚s0) |
| CapEff | 0 |
CVE-2026-43499 (GhostLock) è una UAF dello stack nel sottosistema rtmutex del kernel Linux.
remove_waiter() utilizza current invece di waiter->task nel percorso di rollback del proxy lock,
provocando un puntatore pendente residuo in task_struct->pi_blocked_on.
_copy_from_user viene comunque eseguitoPSELECT_WAITER_WORD_SHIFT = 10Vedere docs/05-limitations.md:
docs/ documenti di analisi e cronologia
06-research-snapshot.md snapshot completo della ricerca07-iteration-log.md registro delle versioni fallitedisasm/ frammenti di disassemblaggio chiaverecon/ output di ricognizioneinclude/ tabella dei simboli + offset delle strutturesrc/ codice sorgente del PoC (vedere src/README.md)scripts/ script di analisilogs/ log di esecuzione (non inclusi in git)# 1. Estrarre simboli e offset (richiede vmlinux compilato dal codice sorgente del kernel ufficiale ASUS)
./scripts/extract_symbols.sh
./scripts/gen_symbols_h.sh
./scripts/extract_offsets.sh
# 2. Compilazione Stage 0
aarch64-linux-gnu-gcc -static -O2 -pthread \
-o ~/tmp/work/bin/poc_stage0_trigger src/poc_stage0_trigger.c
# 3. Esecuzione sul dispositivo (richiede adb shell verso il dispositivo di destinazione)
adb shell /data/local/tmp/poc_stage0_trigger
Toolchain: aarch64-linux-gnu-gcc -static -O2 -pthread
Riferimenti
· gitchw/ghostlock-cve-2026-43499 Huawei Watch 4 Pro, 5.4.210 (ARM32)
· ccp-p/ghostlock-cve-2026-43499-4.19-k40 Redmi K40, 4.19.157 (aarch64)
· JoinChang/ghostlock-oneplus vari dispositivi OnePlus, fattibilità del layout dello stack
· knowlily/cve-2026-43499-honor analisi dei fallimenti su Honor
Dichiarazione di non responsabilità
Solo per ricerca sulla sicurezza. Non utilizzare su dispositivi non autorizzati.