Skip to content
KitploitKITPLOIT
HerramientasBlog
Log in
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
IonStack_S21 — Investigación de cadena de exploits dirigida a CVE-2026-43499 en Samsung Galaxy S21 | Kitploit
Herramientas/GitHubGitHub/kurtulusakyuz/ionstack_s21
Seguridad AndroidEscalada de PrivilegiosAnálisis de VulnerabilidadesExplotaciónIngeniería InversaPost-ExplotaciónSeguridad MóvilPapers e InvestigaciónDesarrollo de PayloadsExplotación de Binarios
GitHub
879hace 20 díasAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
kurtulusakyuz/ionstack_s21

IonStack_S21

Investigación de cadena de exploits dirigida a CVE-2026-43499 en Samsung Galaxy S21

Ver Repositorio

IonStack_S21 — investigación de CVE-2026-43499 para Galaxy S21 (SM-G991B)

Proyecto KernelSU funcional y activo para este dispositivo: kurtulusakyuz/dfroot-s21 — empieza por ahí. Este repositorio conserva únicamente la investigación de IonStack.

Payload de IonStack específico para el dispositivo Samsung Galaxy S21 (o1s) en firmware G991BXXSJHZC2. Estado: investigación CERRADA — DoS determinista únicamente; la ruta de escritura en el kernel está demostrada como imposible en esta compilación. Evidencia completa en RESEARCH.md.

CampoValor
ModeloSM-G991B
Dispositivoo1s
FirmwareG991BXXSJHZC2
Android15 / API 35 (AP3A.240905.015.A2, fingerprint samsung/o1sxeea/o1s)
Tamaño de página4096
Kernel5.4.242-30958140-abG991BXXSJHZC2
SoCExynos 2100
MitigacionesCFI+PAC+PAN/UAO, KDP_CRED, SELinux enforcing, sin userfaultfd

Basado en la implementación de IonStack CVE-2026-43499 publicada en NebuSec/CyberMeowfia (upstream b850d3bddc74c3328d5fbcc0568d21962b55d949) y BuSung-dev/CVE-2026-43499-S25U, con agradecimiento a F-19-F/IonStackQuest3. Se conserva la licencia Apache License 2.0 original en LICENSE (ver NOTICE).

Estado final (lee esto primero)

El programa de escritura GhostLock para este dispositivo está terminado y cerrado, no en pausa. Lo que se demostró, en orden:

  1. El bug es real y está presente. remove_waiter() limpia current->pi_blocked_on en lugar de waiter->task->pi_blocked_on, por lo que un rollback de FUTEX_CMP_REQUEUE_PI deja un puntero colgante a un rt_waiter en la pila. El fix upstream 3bfdc63 está ausente en 5.4.242.
  2. El trigger es fiable. El ciclo de 3 hilos (owner → chain → waiter → target deadlock, el CMP principal falla con EDEADLK) más un sched_setattr del consumidor reproduce un Oops idéntico al del dispositivo (rt_mutex_adjust_prio_chain+0x108 → _raw_spin_trylock+0x1c, fault VA 0) tanto en un guest QEMU sin KDP como en el propio teléfono (lastkmsg 118/119). El slot colgante está completamente mapeado (stack-top E-0x328, ciclo de vida caracterizado vía QEMU+GDB).
  3. La escritura es estructuralmente imposible aquí. Se mapearon en profundidad nueve familias de syscall-spray — ninguna alcanza el slot; la reclamación de slab está bloqueada por un Catch-22 de liveness del owner; y el dump decisivo en el momento del disparo muestra que la copia de sigreturn entrega SOLO en victim+0x40 mientras que el campo de gate recorrido lock (+0x38) NUNCA está controlado por el atacante (15/15 dumps). Ports independientes (ASUS i005, ruta sigreturn de AQUOS) chocan con el mismo muro. Geometría, no probabilidad.
  4. Lo que sobrevive es una primitiva de reinicio determinista. Los recorridos con lock NULL provocan un panic del kernel y reinician el teléfono — un DoS fiable, no una escalada de privilegios.

Las vías relacionadas de LPE del kernel de 2026 también quedaron cerradas en esta compilación por la configuración del firmware (USER_NS, RDS, CRYPTO_USER_API_AEAD todos sin definir; double-free de MFC inalcanzable con MFC_USE_DMABUF_CONTAINER=n; AF_ALG/eBPF restringidos para shell). Los artefactos posteriores a la escritura (KernelSU .ko + ksud compilados para este firmware exacto) están preparados por separado; los headers de src/kernelsnitch/ en este árbol permanecen preparados pero sin compilar (no existe consumidor sin una escritura).

Estructura

Makefile                  build (NDK r27+, ANDROID_NDK_HOME)
src/                      exploit source (o1s profile only)
src/targets/o1s-G991BXXSJHZC2/  target.h + p0_fingerprint.h
src/kernelsnitch/         mm_struct leak (futex hash collision, staged)
tools/                    p0 fingerprint helper
RESEARCH.md               research notes (geometry, verdicts)

Compilación

export ANDROID_NDK_HOME=/path/to/android-ndk
make clean all
# SLIDE_WRITER_SEL=1|2|3 selects mcast/sigreturn(default)/xattr writers.
# Unset selects the experimental pselect writer (see RESEARCH.md).

Salidas (build/o1s-G991BXXSJHZC2/): cve-2026-43499 (payload LD_PRELOAD), cve-2026-43499-app.so (payload de app), cve-2026-43499-root (helper de root).

Despliegue y ejecución

adb push build/o1s-G991BXXSJHZC2/cve-2026-43499 /data/local/tmp/cve-2026-43499
adb push build/o1s-G991BXXSJHZC2/cve-2026-43499-root /data/local/tmp/cve-2026-43499-root
adb shell chmod 755 /data/local/tmp/cve-2026-43499 /data/local/tmp/cve-2026-43499-root
adb shell "LD_PRELOAD=/data/local/tmp/cve-2026-43499 sh"
# on success:
adb shell "/data/local/tmp/cve-2026-43499-root -c 'id; getenforce'"

Gestión de expectativas: en esta compilación "éxito" significa el recorrido del trigger y su salida de oráculo — un recorrido con lock NULL reinicia el dispositivo en lugar de otorgar root (ver "Estado final" arriba). El root, si alguna vez se lograra mediante una futura primitiva de escritura, solo dura hasta el reinicio; no se flashea nada.

Estado / advertencias

  • DoS únicamente, ruta de escritura cerrada con evidencia — ver RESEARCH.md para el relato completo (geometría del slot, cierre del spray, modelo general de SIGRETURN, dump decisivo en el momento del disparo, confirmación en el dispositivo).
  • Sensible a la temporización; espera panics del kernel. Reinicia para obtener slabs limpios, mantén el dispositivo inactivo durante la ejecución. /data/local/tmp se borra al reiniciar — vuelve a enviar los binarios tras cada arranque.
  • Úsalo solo en dispositivos que poseas o para los que tengas autorización explícita de prueba.
Descargar herramienta