Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
ghostlock-oneplus — # GhostLock (CVE-2026-43499) Kernel-Exploit für Android-Geräte mit gesperrtem Bootloader | Kitploit
Tools/GitHubGitHub/joinchang/ghostlock-oneplus
Android-SicherheitPrivilege EscalationExploit-FrameworksSchwachstellenanalysePenetrationstestsMobile SicherheitLernen & BildungBinary-Exploitation
GitHubjoinchang/ghostlock-oneplus

ghostlock-oneplus

# GhostLock (CVE-2026-43499) Kernel-Exploit für Android-Geräte mit gesperrtem Bootloader

Repository anzeigen
2354623vor 11 TagenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

GhostLock — Jailbreak für gesperrte Bootloader

Kernel-Exploit für Android-Geräte mit gesperrtem Bootloader. Erreicht temporären Root + KernelSU-Installation, ohne den Bootloader zu entsperren oder das Boot-Image zu modifizieren. Laufzeit-Auto-Erkennung der Kernel-Version mit Multi-Geräte-Offset-Tabelle.

GhostLock läuft auf OnePlus Ace 6T mit KernelSU (LKM, Jailbreak-Modus)

Schwachstelle

CVE-2026-43499 — Futex PI (Priority Inheritance) Use-After-Free

Betrifft Linux-Kernel 5.7 ~ 7.1. Behoben in Stable 6.1.175, 6.6.140, 6.12.86. Die meisten Android-Geräte sind Stand September 2026 weiterhin ungepatcht.

Der pselect6-Syscall kopiert fd_set-Daten auf den Kernel-Stack. In Kombination mit dem Futex-PI-Waiter-Mechanismus kann ein freigegebener Stack-Frame als rt_mutex_waiter-Struktur zurückgewonnen werden. Das rb-tree-Rebalancing während des PI-Chain-Walks schreibt dann kontrollierte Werte an beliebige Kernel-Adressen.

Unterstützte Geräte

Verifiziert funktionsfähig

Offsets extrahiert (Gerätetest ausstehend)

Nicht durchführbar

Das pselect-Stack-Overlay erfordert, dass der freigegebene rt_mutex_waiter innerhalb des benutzerkontrollierten stack_fds-Bereichs (Wörter 0–14) landet. Wo er landet, wird durch Compiler-PGO/LTO-Profile bestimmt, nicht durch die Kernel-Version. Siehe Stack-Layout.

Hinweis zur 6.1-Durchführbarkeit: OPLUS-6.1-Kernel sind durchgängig nicht durchführbar, da PGO do_futex inlined. Einige Nicht-OPLUS-6.1-Kernel (vivo) behalten jedoch die Standard-Call-Chain bei und sind durchführbar (vivo T4, X Fold3 Pro). Die Durchführbarkeit muss pro Gerät geprüft werden.

Exploit-Ablauf

Zwei Root-Pfade, automatisch basierend auf den Gerätefähigkeiten ausgewählt:

Pfad A: UMH-Root (bevorzugt, C-ashmem-Geräte)

Erfordert off_ashmem_misc_fops != 0 (C-ashmem mit statischem miscdevice in BSS).

root@kitploit:~
PI-Write (mode=4)  →  miscdevice-fops auf Fake-fops umleiten
                   →  configfs r/w → pipe physrw (1-Byte-präzises Kernel-r/w)
                   →  SELinux enforcing = 0 (einzelnes Byte, keine policycap-Korruption)
                   →  UMH: work_struct in system_unbound_wq injizieren
                   →  Root-Skript → ksud late-load → KSU installiert

Verfügbar auf: OnePlus 13, OPPO Pad 4 Pro, 5.10/6.1 C-ashmem-Geräten. Nicht verfügbar auf Rust-ashmem (6.12 GKI) — Heap-alloziertes miscdevice.

Pfad B: Direkter PI-Write (Fallback)

root@kitploit:~
Write 1 (mode=1)  →  SELinux enforcing = 0 (8-Byte-Write, korrumpiert angrenzende Bytes)
Write 2 (mode=2)  →  task->cred = init_cred (uid=0, alle Capabilities)
Root-Shell         →  ksud late-load → KSU → SELinux-Policy-Fix

Nach W1+W2 patcht der Exploit das Config-Feld der SELinux-Policy-Binärdatei (|= 0xC0000000 für ANDROID_NETLINK_ROUTE + GETNEIGH) und lädt es über /sys/fs/selinux/load neu, um die Netzwerkkonnektivität wiederherzustellen.

Bootstrap-Modus (Telefon eigenständig)

root@kitploit:~
App (seccomp)  →  Write 1 → Mini-ADB-TCP → adb shell: vollständiger Exploit → Root

Auto-Boot

Der Bootzeit-Launcher wird von der separaten GhostLock Anchor App bereitgestellt.

Stack-Layout-Durchführbarkeit

Mit NFDS=320 alloziert core_sys_select einen 256-Byte-stack_fds-Puffer auf dem Kernel-Stack:

root@kitploit:~
stack_fds:  0    5    10   14 | 15   20   25   29
            ├─in─┤─out─┤─ex──┤ ├res_in┤res_out┤res_ex┤
            ◄── BENUTZERKONTROLLIERT ──►│◄── KERNEL GENULLT ──►

Der Exploit platziert Fake-Waiter-Felder (task, lock) in den fd_set-Eingabe-Bitmaps. Für 6.12 Nested-Waiter (14 Wörter): maximal durchführbares Waiter-Wort = 3. Für 5.10/6.1 Compact-Waiter (10 Wörter): maximal durchführbares Waiter-Wort = 7.

Die Waiter-Position hängt von der Call-Chain-Tiefe ab:

kernel_phys_load

Alle Kernel-Writes verwenden den Linear-Map-Alias. Der Bootloader wählt kernel_phys_load, das je nach SoC variiert:

SoCkernel_phys_load
SM8845 (Ace 6T, 15T)0xa8000000
SM8750 (OnePlus 13, OPPO Pad 4 Pro)0xa8000000

Ein falscher Wert schlägt still fehl. Auf einem gerooteten Gerät auslesen:

root@kitploit:~
su -c 'grep -i "Kernel code" /proc/iomem'   # c7810000-... → 0xc7800000

Zur Laufzeit überschreiben: KPHYS=0xc7800000 /data/local/tmp/a/e

PSELECT_SHIFT

root@kitploit:~
/data/local/tmp/a/e                        # Standard (shift=0)
PSELECT_SHIFT=-2 /data/local/tmp/a/e       # OnePlus 13 (6.6)

KIMAGE_TEXT_BASE

5.10-Kernel verwenden 0xffffffc008000000 (VA_BITS=39, abweichend vom 6.x-Standard 0xffffffc080000000). Dies wird automatisch über das Feld kimage_text_base im Geräte-Offset-Eintrag behandelt.

Build

root@kitploit:~
make NDK_ROOT=/pfad/zu/android-ndk

Oder direkt:

root@kitploit:~
NDK=/pfad/zu/android-ndk
"$NDK/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android35-clang" \
  -O2 -Wall -Isrc/core -Isrc/devices -DTARGET_CONFIG_H=\"target.h\" \
  src/core/main.c src/core/util.c src/core/slide.c \
  src/core/fops.c src/core/pipe_physrw.c src/core/root.c \
  src/core/miniadb.c src/core/umh_root.c \
  -o ./ghostlock -fPIE -pie -pthread

Voraussetzungen

ksud (für KSU-Installation erforderlich)

GhostLock stellt temporären Root bereit. Die KernelSU-Installation erfordert ksud, das kernelsu.ko für jede KMI-Version bündelt.

MethodeSchritte
ReSukiSU-APK (empfohlen)ReSukiSU oder diesen installieren. Bündelt .

Einrichtung

root@kitploit:~
adb shell mkdir -p /data/local/tmp/a
adb push ./ghostlock /data/local/tmp/a/e
adb shell chmod 755 /data/local/tmp/a/e
adb shell /data/local/tmp/a/e

Nach Abschluss des Bootvorgangs ausführen, sobald ADB bereit ist.

Hinzufügen neuer Geräte

Nur boot.img wird benötigt — kein Root, kein Gerätezugriff erforderlich.

1. Kernel und kallsyms extrahieren

Siehe kallsyms-Tools-Anleitung für den vollständigen Workflow, oder:

root@kitploit:~
python tools/extract_target.py --kallsyms kallsyms.txt
python tools/extract_btf.py kernel

2. Durchführbarkeit bestimmen

Prüfen, ob do_futex PGO-inlined ist, indem die Kernel-Binärdatei nach allen Branch-Instruktionen durchsucht wird, die auf futex_wait_requeue_pi abzielen. Wenn __arm64_sys_futex es direkt aufruft (unter Umgehung von do_futex), ist das Gerät wahrscheinlich nicht durchführbar.

3. Geräteeintrag erstellen

src/devices/<name>/offsets.h mit den extrahierten Offsets hinzufügen und in src/devices/offsets.h einbinden. Das passende Struct-Offsets-Makro verwenden:

Für 5.10/6.1-Compact-Waiter-Geräte zusätzlich .kimage_text_base=0xffffffc008000000ULL setzen.

Dateien

Lizenz

Nur für autorisierte Sicherheitsforschung und Bildungszwecke.

Tool herunterladen
GerätSoCKernelGKI-BranchSHIFT
OnePlus Ace 6T (PLR110)SM88456.12.38android16-50
OnePlus 15 (CPH2745/2747/2749)SM88506.12.23android16-50
Xiaomi 17 (pudding)SM88506.12.23 / 6.12.69android16-5 / android16-60
OnePlus 13 (IN2060)SM87506.6.89android15-8-2
OPPO Pad 4 ProSM87506.6.89android15-8-2
GerätSoCKernelHinweise
OnePlus 15T (PLZ110)SM88456.12.38Gleicher Kernel wie Ace 6T
OPPO Reno10 Pro+ (CPH2521)SM84755.10.2365.10 Compact-Waiter, Waiter-Wort=0
Vivo X Fold3 Pro (PD2337)SM86506.1.1246.1 Compact-Waiter, Waiter-Wort=3
Vivo T4SM86506.1.1456.1 Compact-Waiter, Waiter-Wort=3
GerätSoCKernelUrsache
OPPO Find X9 UltraSM87506.12.58PGO eliminiert do_futex → Waiter-Wort=14
OnePlus 12SM86506.1.141PGO inlined do_futex → Waiter-Wort=13/19
OnePlus 13R / Ace 5SM86506.1.xOPLUS 6.1: Waiter-Wort=13
realme RMX5070SM66506.1.141OPLUS 6.1: Waiter-Wort=13
OPPO Pad 5 (OPD2502)MT68786.1.134OPLUS 6.1: Waiter-Wort=13
Motorola Edge 60 FusionMT68786.1.145Nicht-OPLUS 6.1: gleiches Ergebnis
iQOO Neo 10 CNSM86506.1.84do_futex-Frame 0xD0 → Waiter-Wort=-11
OPPO PKW110—5.15.180do_futex-Frame 0x140 → Waiter-Wort=-29
iQOO Z9 5G—5.15.178do_futex-Frame zu groß
CPH2763 (OPPO)—6.1.115OPLUS 6.1: PGO inlined, Waiter-Wort=24
MusterCall-ChainDurchführbar
android16-5 (6.12)sys_futex → do_futex → fwrpi✅ Waiter-Wort=2
android15-8 (6.6)sys_futex → do_futex → fwrpi✅ Waiter-Wort=2 (SHIFT=-2)
vivo 6.1sys_futex → do_futex → fwrpi✅ Waiter-Wort=3
OPLUS 6.1sys_futex → fwrpi (PGO inlined)❌ Waiter-Wort=13+
android16-6 (X9 Ultra)sys_futex → fwrpi (PGO inlined)❌ Waiter-Wort=14
5.10 OPLUSsys_futex → do_futex → fwrpi✅ Waiter-Wort=0
SM8650 (vivo T4, X Fold3 Pro)
0xa8000000
SM8850 (OnePlus 15, Xiaomi 17)0xc7800000
Fork
libksud.so
CI-ReleaseVon ReSukiSU CI herunterladen
KernelWaiter-LayoutMakro
6.12.xNested (14 Wörter)STRUCT_OFFSETS_6_12
6.6.xNested (14 Wörter)STRUCT_OFFSETS_6_6
6.1.x (vivo)Compact (10 Wörter)STRUCT_OFFSETS_6_1
5.10.xCompact (10 Wörter)STRUCT_OFFSETS_5_10
DateiBeschreibung
src/core/main.cExploit-Einstieg, W1/W2, UMH-Pfad, Bootstrap, Root-Skript, SELinux-Policy-Fix
src/core/fops.cpselect-Route, PI-Write, CFI-Stufe, Compact-Waiter-Unterstützung
src/core/util.cHeap-Spray, KernelSnitch, Slab-Drain, Payload-Setup
src/core/pipe_physrw.cPipe-Puffer-Physikalischer-Speicher-r/w
src/core/umh_root.cUMH-Root über Workqueue-Injektion
src/core/miniadb.cMini-ADB-Client (TCP + RSA-Auth)
src/core/target.hSpeicherlayout, Struct-Feld-Standardwerte (6.12)
src/core/runtime_struct_offsets.hGerätespezifische Struct-Feld-Überschreibung
src/devices/offsets.hGeräte-Offset-Tabellen + STRUCT_OFFSETS_*-Makros
tools/extract_target.pyOffset-Extraktion aus kallsyms
tools/extract_btf.pyStruct-Offset-Extraktion aus BTF
tools/kallsyms/End-to-End-kallsyms-Wiederherstellungs-Workflow