Skip to content
KitploitKITPLOIT
HerramientasBlog
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.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-43499-aristotle-apk — Exploit del kernel de Android para CVE-2026-43499 (use-after-free en Futex-PI) que obtiene root temporal en Xiaomi XIG04 para habilitar ADB. Incluye compilación automatizada del payload y activación con un solo toque. | Kitploit
Herramientas/GitHubGitHub/soralis0912/cve-2026-43499-aristotle-apk
Seguridad AndroidEscalada de PrivilegiosAnálisis de VulnerabilidadesExplotaciónShellcodeSeguridad MóvilDesarrollo de PayloadsExplotación de Binarios

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
GitHub
soralis0912/cve-2026-43499-aristotle-apk

CVE-2026-43499-aristotle-apk

Exploit del kernel de Android para CVE-2026-43499 (use-after-free en Futex-PI) que obtiene root temporal en Xiaomi XIG04 para habilitar ADB. Incluye compilación automatizada del payload y activación con un solo toque.

Ver Repositorio
52hace 26 díasAún no revisado

Aristotle: habilitar ADB

Una aplicación minimalista de Android que activa ADB en un au/KDDI Xiaomi "aristotle" (XIG04, Android 12) cuyas opciones de desarrollador son inaccesibles, usando un root temporal obtenido de CVE-2026-43499. Es una herramienta de propietario del dispositivo de la misma categoría que KingRoot: rootea tu propio teléfono para cambiar un ajuste.

Ámbito: tu propio XIG04 con Xiaomi/XIG04_jp_kdi/XIG04:12/SP1A.210812.016/V14.0.3.0.TMFJPKD. No es un exploit de propósito general ni remoto.


Qué hace

Un botón, una sola tarea:

  1. Coloca el payload del exploit (preload.so) extraído del APK en el filesDir privado de la app, chmod 0700.
  2. Dispara el bug del kernel lanzando un /system/bin/true efímero con LD_PRELOAD apuntando a ese payload. El constructor ELF del payload activa el use-after-free de Futex-PI, toma tmp-root y autoinstala un su cliente + daemon.
  3. Confirma el root ejecutando su -c id y comprobando uid=0.
  4. Habilita ADB como root:
    • settings put global development_settings_enabled 1
    • settings put global adb_enabled 1
    • stop adbd; start adbd (alternativa: setprop ctl.restart adbd)

Cada paso se registra en un log en pantalla.

La vulnerabilidad

CVE-2026-43499 — un use-after-free en la ruta Futex-PI del kernel de Linux (kernel/locking/rtmutex.c, remove_waiter()). El kernel 5.10.136-android12 de aristotle está afectado (CONFIG_FUTEX_PI=y, CONFIG_RT_MUTEXES=y). El exploit usa un "direct-root" solo de datos (intercambia cred, cambia SELinux a enforcing) y fuerza bruta las etiquetas MTE para superar el endurecimiento del dispositivo. El código fuente del exploit y los offsets medidos de aristotle están en el submódulo git exploit/ de este repositorio.


El payload se compila automáticamente

preload.so no está versionado. Se genera a partir del submódulo exploit/ y se incrusta en el APK durante la compilación:

  • exploit/ — submódulo git: el exploit de aristotle para CVE-2026-43499 (compila preload.so).
  • La tarea de Gradle buildExploitSo (integrada en preBuild) ejecuta el make ... API=31 del exploit y copia el preload.so resultante en app/src/main/assets/exploit/preload.so antes de empaquetar el APK.

Por tanto, un ./gradlew assembleDebug normal compila el payload y lo incluye, siempre que el Android NDK esté instalado.

Compilación

root@kitploit:~
# 1. fetch the exploit submodule
git submodule update --init --recursive

# 2. install the Android NDK r29 (the exploit Makefile auto-detects it,
#    or export ANDROID_NDK_ROOT), plus JDK 17 and Android SDK platform 34

# 3. build — auto-builds preload.so (API=31) and embeds it
./gradlew assembleDebug          # -> app/build/outputs/apk/debug/app-debug.apk

¿Sin NDK / solo quieres el esqueleto de la app? Omite la compilación del payload (la app entonces informa de "exploit payload NOT deployed" y no cambia nada en tiempo de ejecución):

root@kitploit:~
./gradlew assembleDebug -PskipExploitBuild

Jar del wrapper: gradle-wrapper.jar no está versionado. Genéralo una vez con gradle wrapper --gradle-version 8.2, o compila con un Gradle del sistema (la CI usa un Gradle del sistema, por lo que no se requiere el jar del wrapper allí).

CI / lanzamientos

.github/workflows/build-release.yml (GitHub Actions) compila el APK en cada push y lo publica como una GitHub Release (etiqueta build-<run>), con el app-debug.apk adjunto. El workflow hace checkout del submódulo exploit, instala JDK 17 / Android SDK 34 / NDK r29 y ejecuta gradle assembleDebug, que compila e incrusta preload.so (API=31).

Configuración única: sube este repositorio y el del exploit al mismo propietario de GitHub como repositorios hermanos, para que la url relativa del submódulo se resuelva. Si el repositorio del exploit es privado, añade un PAT con ámbito repo como secreto SUBMODULE_PAT y descomenta la línea token: en el workflow.

Estructura

root@kitploit:~
.
├── settings.gradle / build.gradle / gradle.properties   Gradle wiring
├── gradlew(.bat) + gradle/wrapper/                       wrapper
├── exploit/                                              git submodule (builds preload.so)
└── app/
    ├── build.gradle          minSdk 31 / targetSdk 31 / compileSdk 34, arm64-v8a; buildExploitSo task
    └── src/main/
        ├── AndroidManifest.xml         single launcher Activity, no dangerous perms
        ├── java/.../MainActivity.kt    button + scrolling log
        ├── java/.../ExploitRunner.kt   stage → LD_PRELOAD → su -c "settings ..."
        ├── res/{layout,values}/        UI, strings, theme
        └── assets/exploit/             preload.so is embedded here at build time

Ejecución

  1. git submodule update --init --recursive, instala el NDK y luego ./gradlew assembleDebug.
  2. Instala y ejecuta en el XIG04. Si lo que intentas habilitar es ADB, instala el APK desde el propio dispositivo (descarga con gestor de archivos / navegador) y ábrelo desde el launcher.
  3. Toca Habilitar ADB (tmp-root) y observa el log. En caso de éxito, termina con adb_enabled is now: 1.
  4. Conecta ADB desde tu PC como de costumbre.

Limitaciones / advertencias

  • Compilación única. Los offsets están fijados para la ROM anterior; una compilación distinta necesita un payload re-portado.
  • tmp-root es volátil. El root se pierde al reiniciar. adb_enabled en los ajustes globales suele persistir, y adbd no necesita root una vez habilitado.
  • SELinux / W^X. Ejecutar un archivo privado de la app mediante LD_PRELOAD puede ser denegado según el dominio de la app; la propia estrategia del exploit lo gestiona, y cualquier denegación se muestra en el log en lugar de ocultarse.
  • Solo para dispositivos propios. Esto es para desbloquear ADB en hardware que te pertenece.
Descargar herramienta