Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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.

FeedsKontaktDatenschutz© 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
23546168vor 1 MonatVon 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äres Root + KernelSU-Installation, ohne den Bootloader zu entsperren oder das Boot-Image zu verändern. Laufzeit-Autoerkennung der Kernel-Version mit Offset-Tabelle für mehrere Geräte.

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. Die rb-tree-Rebalancierung während des PI-Chain-Walks schreibt dann kontrollierte Werte an beliebige Kernel-Adressen.

Unterstützte Geräte

Verifiziert funktionsfähig

GerätSoCKernelGKI-BranchSHIFT
OnePlus Ace 6T (PLR110)SM88456.12.38android16-50
OnePlus 15 (CPH2745/2747/2749)SM88506.12.23android16-50
OnePlus 15 (PLK110)SM88506.12.58android16-60
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

Offsets extrahiert (Gerätetest ausstehend)

GerätSoCKernelHinweise
OnePlus 15T (PLZ110)SM88456.12.38Gleicher Kernel wie Ace 6T
OPPO Reno10 Pro+ (CPH2521)SM84755.10.2365.10 compact waiter, waiter word=0
Sony Xperia 1 IV (nagara)SM84505.10.2185.10 compact waiter, waiter word=0
OPPO Find X9 Pro (PLG110)D94006.12.23MediaTek, android16-5
Vivo X200 Ultra (V2454A)SM87506.6.89C ashmem, traditionelle Hooks
Vivo X Fold3 Pro (PD2337)SM86506.1.1246.1 compact waiter, waiter word=3
Vivo T4SM86506.1.1456.1 compact waiter, waiter word=3

Nicht machbar

Das pselect-Stack-Overlay erfordert, dass der freigegebene rt_mutex_waiter innerhalb des benutzerkontrollierbaren 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.

GerätSoCKernelUrsache
OPPO Find X9 UltraSM87506.12.58PGO eliminiert do_futex → waiter word=14
OnePlus 15 (PLK110)SM88506.12.69PGO inlined do_futex → waiter word=20
OnePlus 12SM86506.1.141PGO inlined do_futex → waiter word=13/19
OnePlus 13R / Ace 5SM86506.1.xOPLUS 6.1: waiter word=13
realme RMX5070SM66506.1.141OPLUS 6.1: waiter word=13
OPPO Pad 5 (OPD2502)MT68786.1.134OPLUS 6.1: waiter word=13
Motorola Edge 60 FusionMT68786.1.145Nicht-OPLUS 6.1: gleiches Ergebnis
iQOO Neo 10 CNSM86506.1.84do_futex-Frame 0xD0 → waiter word=-11
OPPO PKW110—5.15.180do_futex-Frame 0x140 → waiter word=-29
iQOO Z9 5G—5.15.178do_futex-Frame zu groß
CPH2763 (OPPO)—6.1.115OPLUS 6.1: PGO inlined, waiter word=24
iQOO 12SM86506.1.1456.1: waiter word=9, task/lock im genullten Bereich

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

Exploit-Ablauf

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

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

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

PI write (mode=4)  →  redirect miscdevice fops to fake fops
                   →  configfs r/w → pipe physrw (1-byte precise kernel r/w)
                   →  SELinux enforcing = 0 (single byte, no policycap corruption)
                   →  UMH: inject work_struct into system_unbound_wq
                   →  root script → ksud late-load → KSU installed

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-allokiertes miscdevice.

Pfad B: Direkter PI-Schreibzugriff (Fallback)

Write 1 (mode=1)  →  SELinux enforcing = 0 (8-byte write, corrupts adjacent bytes)
Write 2 (mode=2)  →  task->cred = init_cred (uid=0, all capabilities)
Root shell         →  ksud late-load → KSU → SELinux policy fix

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

Bootstrap-Modus (Telefon eigenständig)

App (seccomp)  →  Write 1 → mini-adb TCP → adb shell: full exploit → root

Auto-Boot

Der Startprogramm zur Bootzeit wird von der separaten GhostLock Anchor App bereitgestellt.

Machbarkeit des Stack-Layouts

Mit NFDS=320 reserviert core_sys_select einen 256-Byte großen stack_fds-Puffer auf dem Kernel-Stack:

stack_fds:  0    5    10   14 | 15   20   25   29
            ├─in─┤─out─┤─ex──┤ ├res_in┤res_out┤res_ex┤
            ◄── USER CONTROLLED ──►│◄── KERNEL ZEROED ──►

Der Exploit platziert gefälschte Waiter-Felder (task, lock) in den fd_set-Eingabe-Bitmaps. Für 6.12 verschachtelter Waiter (14 Wörter): maximal mögliches Waiter-Wort = 3. Für 5.10/6.1 kompakter Waiter (10 Wörter): maximal mögliches Waiter-Wort = 7.

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

MusterAufrufketteMachbar
android16-5 (6.12)sys_futex → do_futex → fwrpi✅ Waiter-Wort=2
android16-6 (6.12.58)sys_futex → do_futex → fwrpi✅ Waiter-Wort=2
android16-6 (6.12.69 OPLUS)sys_futex → fwrpi (PGO inlined)❌ Waiter-Wort=20
android16-6 (X9 Ultra)sys_futex → fwrpi (PGO inlined)❌ Waiter-Wort=14
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+
5.10 OPLUSsys_futex → do_futex → fwrpi✅ Waiter-Wort=0

kernel_phys_load

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

SoCkernel_phys_load
SM8845 (Ace 6T, 15T)0xa8000000
SM8750 (OnePlus 13, OPPO Pad 4 Pro)0xa8000000
SM8650 (vivo T4, X Fold3 Pro)0xa8000000
SM8850 (OnePlus 15, Xiaomi 17)0xc7800000

Ein falscher Wert schlägt stillschweigend fehl. Lesen Sie ihn auf einem gerooteten Gerät aus:

su -c 'grep -i "Kernel code" /proc/iomem'   # c7810000-... → 0xc7800000

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

PSELECT_SHIFT

/data/local/tmp/a/e                        # Default (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

make NDK_ROOT=/path/to/android-ndk

Oder direkt:

Tool herunterladen