CVE-2026-43499 — GhostLock su Huawei Nova 9 (NAM-AL00)
Ricerca sulla sicurezza: conferma su dispositivo e analisi dello sfruttamento di CVE-2026-43499 (GhostLock)
su Huawei Nova 9 (NAM-AL00, Snapdragon 778G/SM7325, HarmonyOS 4.2.0.185, kernel 5.4.86-qgki).
Riepilogo
CVE-2026-43499 è una use-after-free nello stack del sottosistema rt_mutex del kernel Linux, introdotta in v2.6.39 (2011). Questo repository conferma che la vulnerabilità si attiva deterministicamente su NAM-AL00 con HMOS 4.2 e SPL 2025-07-01, documenta la metodologia di sfruttamento completa e analizza perché non è stato ottenuto root completo.
Confermato
- ✅ Il rollback EDEADLK si attiva deterministicamente (trigger del bug)
- ✅ KASLR neutralizzato a ogni avvio tramite il leak della callchain di perf_event
- ✅ Recupero completo dei simboli (224.986 simboli dall'Image grezzo)
- ✅ Consegna dual-planter verificata allineata (pselect6 + PR_SET_MM_MAP)
- ✅ La walk consuma campi waiter contraffatti (wedge = prova della dereferenziazione)
Non raggiunto
- ❌ Prova di scrittura arbitraria (la semantica della walk modificata da Huawei impedisce una terminazione pulita)
- ❌ Root temporaneo (bloccato dalla pulizia post-exit + divergenza durante la walk)
Risultati chiave
| Finding | Detail |
|---|
| HKIP | NON presente su SM7325 (EL2 = Qualcomm Haven) |
| SLAB_FREELIST_HARDENED |
File
poc/poc_trigger.c — deterministic EDEADLK trigger (stage-1 PoC)
poc/perf_probe.c — KASLR slide extraction via perf_event
exploit/stage3_main.c — integrated pipeline (trigger→plant→punch→oracle)
exploit/escalate.c — post-write escalation core (cred/sid/seccomp)
exploit/stage2_forge.h — forged rt_mutex_waiter composer
sim/sim_final.py — Unicorn emulator oracle (offline walk trace)
offsets/offset.h — all verified symbol addresses & struct layouts
analysis/kernel.config — extracted build configuration
analysis/symbols.txt — 224,986 recovered kallsyms entries
Compilazione
# Trigger PoC
${NDK}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android33-clang \
-O2 -static -pthread -o poc_trigger poc/poc_trigger.c
# Run on device
adb push poc_trigger /data/local/tmp/
adb shell /data/local/tmp/poc_trigger 10
Riferimenti
Licenza
MIT