CVE-2026-43499 — GhostLock auf Huawei Nova 9 (NAM-AL00)
Sicherheitsforschung: Bestätigung auf dem Gerät und Exploit-Analyse von CVE-2026-43499 (GhostLock)
auf Huawei Nova 9 (NAM-AL00, Snapdragon 778G/SM7325, HarmonyOS 4.2.0.185, Kernel 5.4.86-qgki).
Zusammenfassung
CVE-2026-43499 ist ein Stack-Use-after-Free im rt_mutex-Subsystem des Linux-Kernels,
eingeführt in v2.6.39 (2011). Dieses Repository bestätigt, dass die Schwachstelle auf
NAM-AL00 mit HMOS 4.2 und SPL 2025-07-01 deterministisch ausgelöst wird, dokumentiert die
vollständige Exploit-Methodik und analysiert, warum vollständiger Root nicht erreicht wurde.
Bestätigt
- ✅ EDEADLK-Rollback feuert deterministisch (Bug-Trigger)
- ✅ KASLR pro Boot über perf_event-Callchain-Leak ausgehebelt
- ✅ Vollständige Symbolwiederherstellung (224.986 Symbole aus rohem Image)
- ✅ Dual-Planter-Zustellung als ausgerichtet verifiziert (pselect6 + PR_SET_MM_MAP)
- ✅ Walk verbraucht gefälschte Waiter-Felder (wedge = Beweis der Dereferenzierung)
Nicht erreicht
- ❌ Beweis für beliebiges Schreiben (Huawei-modifizierte Walk-Semantik verhindert sauberen Abschluss)
- ❌ Temporärer Root (blockiert durch Post-Exit-Bereinigung + In-Walk-Divergenz)
Wichtigste Erkenntnisse
| Finding | Detail |
|---|
| HKIP | NICHT vorhanden auf SM7325 (EL2 = Qualcomm Haven) |
| SLAB_FREELIST_HARDENED |
Dateien
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
Kompilieren
# 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
Referenzen
Lizenz
MIT