
Ein-Klick-Root-Kit für vivo iQOO Neo9S Pro (MT6989), das CVE-2026-43499 Futex-PI-UAF über den MCAST-Transport ausnutzt, mit Skripten und Analysedokumenten.
GhostLock-Ein-Klick-Root-Kit für das vivo iQOO Neo9S Pro (V2339FA, MediaTek MT6989). Dieses Repository enthält: MCAST-Transport-Portierungspatches, Ein-Klick-Skripte, vollständige Analysedokumentation; das vollständige lauffähige Kit (inkl. Binärdateien und KernelSU) siehe Releases.
Device: vivo iQOO Neo9S Pro (V2339FA / PD2339, MT6989) Firmware: PD2339_A_16.2.12.1.W10.V000L1 (Android 16) Kernel: 6.1.145-android14-11-maybe-dirty Vulnerability: CVE-2026-43499 (futex PI requeue UAF) For device owners / security research only. Use on your own device.
setsockopt(SOL_IP, MCAST_JOIN_SOURCE_GROUP, buf, 0x108) als Poisoning-Primitive, die den stale rt_mutex_waiter vollständig überschreibt und die gesamte Kette (W1→W2→W3→KernelSU) durchgängig macht.ghostlock-kit-20260913.zip von Releases herunterladen und entpacken.cd <解压目录>\ghostlock-kit
powershell -ExecutionPolicy Bypass -File .\scripts\run-at-lockscreen.ps1 -Reboot
[+] Root 成功! ist der Vorgang abgeschlossen (während der Ausführung das Handy nicht entsperren). Überprüfen:adb shell su -c id
# uid=0(root) gid=0(root) groups=0(root) context=u:r:ksu:s0
Bei Fehlschlag wird ein Kernel-Panic ausgelöst und automatisch neu gestartet; das Skript wartet automatisch und wiederholt den Versuch (Erfolgsrate ca. 25–30 % pro Versuch; im Sperrbildschirm-Zeitfenster fast immer beim ersten Versuch erfolgreich). Root ist temporär (KernelSU late-load), nach einem Neustart des Handys muss das Skript erneut ausgeführt werden.
.
├── scripts/
│ ├── run-at-lockscreen.ps1 # 一键:重启→锁屏等待→推送校验→运行→自动重试(推荐)
│ └── retry-if-needed.ps1 # 通用重试(不强制重启)
├── src/
│ └── ghostlock-mcast.patch # 源码改动(基线 ghostlock-app @ 50d2b72)
├── docs/ # 分析文档(利用报告/transport 分析/waiter 与 PI walk/设备手册/排查记录)
└── LICENSE # Apache-2.0(继承上游)
Binärdateien und das vollständige Kit (files/ghostlock, files/ksud, files/offsets.json, KernelSU APK) liegen nicht im Git-Repository,
bitte ghostlock-kit-20260913.zip von Releases herunterladen.
| Asset | Beschreibung | SHA-256 |
|---|---|---|
ghostlock-kit-20260913.zip | Vollständiges Kit (Skripte+Binärdateien+APK+Dokumentation) | df547f6b2852a0d86582958e049ef5a44599a5a91ce0dace2162fb7d0fcab11d |
Wichtige Dateien im Kit (MD5):
| Datei | MD5 |
|---|---|
files/ghostlock (Exploit-Programm) | e581609ed114d33efa3b8a1958f85637 |
files/ksud (offizieller KernelSU v3.3.0 Userspace) |
FUTEX_WAIT_REQUEUE_PI zurückkehrt, zeigt task->pi_blocked_on weiterhin hängend auf den rt_mutex_waiter auf seinem Stack.setsockopt(SOL_IP, MCAST_JOIN_SOURCE_GROUP, buf, 0x108) veranlasst do_ip_setsockopt zu
memset(0x108) + copy_from_user(0x108); der Kopierbereich [S'−0x338, S'−0x230) überschreibt den Waiter vollständig (Waiter liegt bei Puffer-Offset 0x60);
buf[8]=0 setzen lässt die Family-Prüfung fehlschlagen, der Syscall kehrt nach dem Kopieren sauber zurück.sched_setattr → rt_mutex_adjust_prio_chain liest den gefälschten Waiter → rb_erase left-only relink
bildet das Schreib-Primitive .Details siehe docs/ (inkl. Beweiskette, Disassembly-Analyse und Absturz-Szenarien).
# 基线:ghostlock-app @ 50d2b72(含 PR#127)
git clone https://github.com/YuKongA/ghostlock-app.git
cd ghostlock-app && git checkout 50d2b72
git apply /path/to/src/ghostlock-mcast.patch
make NDK_ROOT=<your-ndk> ghostlock
Patch-Inhalt: MCAST-Transport (do_mcast_fake_lock_route), Routenauswahl, Observe-/Vorab-Erstellungslogik,
GHOSTLOCK_WALK_LOG (Consumer-seitige Walk-Lokalisierung), Root-Skript pstore-Backup, GHOSTLOCK_SKIP_VR.
ksud und APK in diesem Kit stammen aus dem offiziellen v3.3.0-Release, Urheberrecht liegt bei den jeweiligen AutorenNur für Geräteeigentümer zur lokalen Sicherheitsforschung und zum Selbst-Rooten eigener Geräte; nicht für nicht autorisierte Geräte oder illegale Zwecke verwenden. Die Verwendung dieses Tools kann zu Geräteinstabilität oder Datenrisiken führen; bitte selbst sichern und die entsprechenden Konsequenzen tragen.
de059ed8ffd896129a0a4bbe338c946a |
files/offsets.json (Offsets für dieses Gerät) | a2498197161b01bdcc5dffc0614fbfbd |
*(target) := valuecred = init_cred → W3 seccomp bereinigen (Shell-Ablauf überspringt dies) → Root-Skript lädt KernelSU late.| Problem | Behandlung |
|---|
| Handy startet nach Fehlschlag neu | Normal (probabilistisches Ereignis); nach Neustart nicht entsperren, Skript direkt erneut ausführen |
| Manager zeigt „nicht installiert/nicht funktionsfähig" | Zuerst prüfen, ob su -c id funktioniert; Manager öffnen und aktualisieren, nicht wegwischen/zwangsstoppen |
| Root verschwindet nach Neustart | Normal (late-load ist nicht persistent); Skript erneut ausführen |
| ReSukiSU verwenden | Auf diesem Gerät nicht nutzbar (Manager öffnen führt sofort zu Hänger und Neustart), ggf. passende Version separat konfigurieren |
| Nach System-Update | offsets.json kann ungültig werden, muss neu generiert/importiert werden |