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-s26 — GhostLock (CVE-2026-43499) für das Galaxy S26 | Kitploit
Tools/GitHubGitHub/snothin/ghostlock-s26
Android-SicherheitPrivilege EscalationPersistenzmechanismenExploitationPost-ExploitationMobile SicherheitPayload-EntwicklungBinary-Exploitation
GitHubsnothin/ghostlock-s26

ghostlock-s26

GhostLock (CVE-2026-43499) für das Galaxy S26

Repository anzeigen
268135vor 19 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 (CVE-2026-43499) für die Galaxy S26

CVE-2026-43499 auf die Samsung Galaxy S26-Serie portiert — Android 16 / GKI 6.12. Eine Binärdatei, drei Kernel-Zeilen, dynamisches Parameter- Matching zur Laufzeit: deckt theoretisch die gesamte S26-Serie ohne Kompilierung pro Build ab.

Die meisten GhostLock-Portierungsbemühungen zielen auf ein einzelnes Gerät oder eine einzelne Firmware ab. Dieses Repository ist ein frischer Port, der jeden Mechanismus für das S26- Ziel neu schreibt und voraussichtlich die gesamte Familie abdecken wird

Ankündigung

https://github.com/diabl0w/DFRoot von @diabl0w ist eine einfachere und bessere Lösung. Ich empfehle, sie zu verwenden.

Der Exploit in diesem Repository wurde in https://github.com/snothin/GhostSam integriert. GhostSam ist komplexer; DFRoot ist reiner und einfacher.

Auf einen Blick

Während ich snothin/CyberMeowfia wartete, stellte ich fest, dass der ursprüngliche Pipe-Physrw-Kanal instabil war (er trennte das Netzwerk), also verwarf ich diesen Weg und erkundete Alternativen. Später stellte ich fest, dass monovibe auf dem von mir erkundeten Pfad weiter fortgeschritten war, übernahm den Ansatz und nach wiederholtem Debugging nahm dieses Repository Gestalt an.

  • Bug: futex PI Use-after-Free Race → pselect fd_set Seeding → ein ausgerichteter Qword- Kernel-Schreibvorgang → beliebiges Kernel-Lesen/Schreiben.
  • Geräte: Galaxy S26 / S26+ / S26 Ultra, Snapdragon (CN + intl) und Exynos-Varianten.
  • Ergebnis: Usermode-Helper läuft als uid=0(root) context=u:r:kernel:s0; persistente Root-Shell über su_daemon auf /data/local/tmp/temp_su.sock.
  • KDP-Bypass: keine Credential-Schreibvorgänge — die Root-Stage fälscht eine work_struct auf system_unbound_wq, deren Funktion call_usermodehelper_exec_work ist, sodass der Kernel unseren Daemon mit Init-Credentials ausführt. KDPs EL2-Guard auf Credential-Seiten wird nie ausgelöst.
  • DEFEX-Bypass: der ksud Late-Load wird über eine ruhende System- Binärdatei (logcat) vor dem Exec bind-gemountet; DEFEXs Safeplace-Regel sieht einen Whitelist-Pfad.

Angriffsablauf

tracefs slide oracle → KASLR base
pselect + futex PI race
  → one aligned qword kernel write
  → attr carrier (controller + data misc nodes)
      the write links both nodes
      clearing controller.minor makes the next open land on data
      data fd reads/writes any kernel address
  → UMH root (workqueue injection)
      forged work_struct on system_unbound_wq
      ptmx open/close storm wakes a worker
      kernel execs daemon with init creds
  → KernelSU late-load: ksud bind-mounted over logcat in a private
    mount namespace (DEFEX safeplace sees a whitelisted path)
  → su_daemon keeps serving /data/local/tmp/temp_su.sock

Unterstützte Firmware

Parameter werden anhand der Kernel-Zeile abgeglichen (drei Zeilen: cn, intl, exynos), nicht anhand des individuellen Builds. Unbekannte OTA-Builds fallen auf die nächstgelegene bekannte Zeile nach Modell und CSC zurück. Vollständig unbekannte Modelle werden abgelehnt (Fail-Closed). Die eingebettete Build- Liste ist maßgeblich in exploit/src/params_table.c. Eine benutzerdefinierte Kernel-Zeile für nicht aufgeführte Firmware kann zur Laufzeit bereitgestellt werden (/data/local/tmp/ghostlock-lines.conf, siehe Umgebung). Siehe PORTING.md für die Parameter, die beim Portieren auf ein neues Gerät oder eine neue Firmware benötigt werden.

ModellGeräte-CodenameGetestete Builds
SM-S942x (S26 Snapdragon)m1qS9420ZCS4AZG1, S942QOPU1AZDE, S942U1UES4AZG3, S942USQS4AZG3
SM-S947x (S26+ Snapdragon)m2qS9470ZCS4AZG1, S947USQS4AZG3
SM-S9480 (S26 Ultra CN)m3qS9480ZCS3AZF1, S9480ZCS4AZG1 (getesteter Build)
SM-S948x (S26 Ultra)m3qS9480ZHS4AZG1, S948BXXS4AZG5/6, S948NKSS4AZG3, S948U1UES2AZE1, S948USQS4AZG3
SM-S942B (S26 Exynos)m1sS942BXXS4AZG5
SM-S947B (S26+ Exynos)m2sS947BXXS3AZF1, S947BXXS4AZG5

Build

Erfordert Android NDK (r26+). Einfach ausführen:

cd exploit
make preload
# produces build/bin/preload.so (exploit) and build/embed/su_daemon_aarch64_pie (embedded daemon)

Verwendung

Schiebe preload.so, su_daemon_aarch64_pie und ksud auf das Gerät (Ausführung aus einer adb- Shell-Sitzung, uid 2000):

adb push exploit/build/bin/preload.so /data/local/tmp/
adb push exploit/build/embed/su_daemon_aarch64_pie /data/local/tmp/cve-2026-43499-root
adb push <ksud> /data/local/tmp/ksud
adb shell chmod 755 /data/local/tmp/cve-2026-43499-root /data/local/tmp/ksud

# Single attempt:
adb shell "env LD_PRELOAD=/data/local/tmp/preload.so sh"

Der Exploit ist probabilistisch (ein Race) und benötigt normalerweise wiederholte Versuche. Bei einem erfolgreichen Durchlauf lauscht su_daemon auf /data/local/tmp/temp_su.sock, und jeder lokale Prozess kann sich verbinden.

Der Boot-Claim-Guard (/data/local/tmp/ghostlock-boot.log) zeichnet das Ergebnis des Laufs jedes Boots auf; ein zweiter Full-Chain-Lauf im selben Boot wird abgelehnt. Lösche die Datei oder setze BOOT_FORCE=1, um dies zu überschreiben.

Umgebung

Jede Option existiert als Env-Variable, als Konfigurationsdatei-Schlüssel (/data/local/tmp/ghostlock.conf, ein key=value pro Zeile) und als CLI-Flag (--key=value); die Priorität ist defaults < file < env < CLI. Ausführung mit --help gibt die vollständige Tabelle aus (Namen, Standardwerte, Bereiche, Reload-Flags).

Die Verhaltensschalter:

Env-VariableSchlüsselWirkung
BOOT_FORCE=1boot.forceerlaubt einen erneuten Lauf innerhalb desselben Boots
GHOSTLOCK_NO_KSU=1ksu.skipüberspringt den KernelSU Late-Load: nur permissiver temporärer Root + su-Socket; Neustart stellt das Gerät wieder her (Knox-Risiko)
ALLOW_SHELL=1root.allow_shellfügt die Shell-uid während des Late-Loads zur KernelSU-Allowlist hinzu
PARAMS_CUSTOM=1params.customverwendet nur die benutzerdefinierte Kernel-Zeile (Fail-Closed, falls unbrauchbar)

Die übrigen Schlüssel stimmen das Race ab (walk.*, heap.*, ...). Die Exynos-Zeile injiziert KSUD_TREE=exynos für das zugehörige ksud (Treiber-Schnittstelle 32601); andere Zeilen tragen keine Tree-Überschreibung. Benutzerdefinierte Kernel-Zeilen für nicht aufgeführte Firmware gehören in /data/local/tmp/ghostlock-lines.conf (line_id=... plus ein Feld pro Zeile, siehe PORTING.md).

Danksagungen

Tool herunterladen