Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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
CVE-2026-98260-pudding-android — Puerto de investigación de CVE-2026-98260 de Android específico para el objetivo Xiaomi 17 (pudding) | Kitploit
Herramientas/GitHubGitHub/addxemmm/cve-2026-98260-pudding-android
Seguridad AndroidEscalada de PrivilegiosForensia de MemoriaExplotaciónPost-ExplotaciónSeguridad MóvilExplotación de Binarios
GitHubaddxemmm/cve-2026-98260-pudding-android

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

CVE-2026-98260-pudding-android

Puerto de investigación de CVE-2026-98260 de Android específico para el objetivo Xiaomi 17 (pudding)

Ver Repositorio
1hace 11 díasAún no revisado

CVE-2026-98260 · Android 17 / pudding 本地提权移植

Cadena de explotación de Android AArch64 para una compilación de kernel exacta de Xiaomi 17 (nombre en clave pudding): partiendo de un shell ADB normal, pone SELinux en Permissive, lleva a cero el UID/GID del proceso actual, completa todas las capabilities de Linux y ofrece un servicio root durante el ciclo de arranque actual.

Referencias y fuentes

Este proyecto se basa y porta desde CVE-2026-98260-popsicle-android (Xiaomi 17 Pro Max / popsicle), no es una investigación independiente implementada desde cero.

  • Descubrimiento de la vulnerabilidad, análisis público y PoC dirigido a Ubuntu: InfinityCore
  • Cadena completa de tres etapas en Android GKI, diseño de diseño de objetos y reutilización de páginas: el repositorio popsicle mencionado arriba
  • Este repositorio solo realiza la adaptación del objetivo de pudding (dos direcciones de enlace, un símbolo de sonda insertado en línea, la escala de escaneo); el resto del código y las ideas pertenecen a los autores originales

Resumen de la vulnerabilidad

Un execve() en un hilo no principal ejecuta primero de_thread() para intercambiar la identidad del hilo. Si el exec falla después de esto (por ejemplo, exec_mmap() se interrumpe por SIGKILL y devuelve -EINTR), la tarea termina antes de limpiar los temporizadores POSIX: se libera el k_itimer, pero su nodo timerqueue permanece en el árbol de la tarea viva. Cuando el proceso padre recolecta posteriormente esa tarea, cleanup_timerqueue() vuelve a operar sobre este nodo ya liberado, formando un use-after-free.

El exploit convierte este UAF en una escritura de cero de ocho bytes restringida y luego avanza en tres pasos: SELinux → UID/GID → capabilities completas. Para una explicación completa orientada a principiantes, véase docs/VULNERABILITY.md.

Objetivo verificado y resultados

ElementoValor medido
DispositivoXiaomi 17, modelo 25113PN0EC, nombre en clave pudding
SistemaXiaomi HyperOS 4 OS4.0.5.0.XPCCNXM, Android 17
Kernel6.12.69-android16-6-g43b5ab7e247d-abogki561813157-4k
Tamaño de página4 KiB
Punto de partidaShell ADB normal autorizado, UID 2000, SELinux Enforcing, bootloader bloqueado
Resultado exitosoUID/GID 0, SELinux Permissive, CapPrm/CapEff/CapBnd=000001ffffffffff
Ciclo de vidaEl servicio root está disponible para nuevos shells ADB posteriores en este arranque; tras reiniciar hay que volver a ejecutarlo

Verificación independiente tras el éxito (shell ADB recién abierto):

uid=0(root) gid=0(root)
CapInh: 000001ffffffffff
CapPrm: 000001ffffffffff
CapEff: 000001ffffffffff
CapBnd: 000001ffffffffff
getenforce: Permissive

Esto no es un root persistente. No se escribió en boot/init_boot ni en ninguna partición, el bootloader permanece bloqueado; tras reiniciar, SELinux vuelve a Enforcing y el servicio root desaparece.

Tasa de éxito

No se garantiza la tasa de éxito. En pruebas reales, se logró completar un ciclo completo A→B→C en 9 arranques. Las condiciones de aprobación de las tres fases son independientes entre sí:

FasePrograma en el dispositivoCondición de aprobación
1. SELinuxexploit-android-perfgetenforce es Permissive, y los demás campos de la palabra de estado se mantienen según lo esperado
2. Identidadexploit-android-perf-chainEl UID/GID del mismo proceso cambia a 0, y luego se ejecuta exec fullcap
3. Permisos completosexploit-android-key-ptr + pc98260_rootd.cCapabilities completas, el servicio root puede ser accedido por un nuevo shell

Si cualquiera de los pasos no se cumple, se mostrará [PARKED] y se conservará el estado peligroso; es obligatorio reiniciar, no se puede reintentar forzosamente dentro de este mismo arranque.

--aio 16384 es el valor de ajuste de esta máquina (en la ocasión exitosa se acertó en la página de metadatos de perf número 3903).

Diferencias con la versión popsicle

Ubicaciónpopsiclepudding
LINK_SELINUX_STATE0xffffffc08289aba00xffffffc0827f9ba0
LINK_GETPID0xffffffc080074eac0xffffffc080102e10
Fuga de dirección del timeralloc_posix_timer devuelve la sondaEse símbolo está inlineado, se usa la entrada $arg1 de posix_cpu_timer_create
PERF_MAX819216384 (aumenta la probabilidad de acierto de página)

La base y las evidencias se encuentran en docs/ADAPTATION.md.

Compilar desde el código fuente

Se requiere un Android NDK. El directorio bin/ del repositorio fue compilado con NDK 26.3.11579264 / API 34:

powershell -NoProfile -ExecutionPolicy Bypass -File .\build.ps1 -NdkHome "$env:LOCALAPPDATA\Android\Sdk\ndk\26.3.11579264" -ApiLevel 34

-VerifyReference compara el SHA-256 de los nuevos artefactos con bin/ uno por uno; solo será idéntico byte a byte si se usa la misma cadena de herramientas que bin/. Cambiar la versión de NDK seguirá funcionando, pero el hash será diferente.

Artefactos:

ArtefactoCódigo fuente de entrada
exploit-android-perfsrc/exploit-android-perf.c
exploit-android-perf-chainsrc/exploit-android-perf-chain.c
exploit-android-key-ptrsrc/exploit-android-key-ptr.c + src/pc98260_rootd.c
pc98260-susrc/pc98260_su.c

La compilación no se conecta al teléfono ni escribe en el dispositivo.

Ejecutar en un objetivo autorizado

Conecte un dispositivo con la depuración USB habilitada y autorizada, y añada platform-tools al PATH:

.\开始98260临时ROOT.bat

O especificar explícitamente el dispositivo:

powershell -NoProfile -ExecutionPolicy Bypass -File .\run_98260.ps1 -Serial <ADB序列号> -Reboot

El script del host verifica el modelo del dispositivo, la versión incremental del sistema, la cadena completa del kernel, el boot ID y los hashes de los cuatro binarios; además, antes de iniciar cada fase, establece /sys/kernel/tracing/tracing_on en 0 (en algunas compilaciones de HyperOS, miuibpf lo mantiene en 1, por lo que la cadena de exploits se negará a ejecutarse). Cuando aparece [PARKED], el script se detiene y solicita reiniciar.

Tras el éxito, se puede usar root de la siguiente manera:

adb shell -t /data/local/tmp/pc98260-su
adb shell /data/local/tmp/pc98260-su -c "id"

Por qué se detiene al fallar

La cadena de explotación requiere recuperar con precisión "la página donde se encuentra el temporizador objetivo". Si no se observa la misma página objetivo, o si la verificación tras la escritura del puntero resulta inconsistente, el programa conserva el zombie/mapeo correspondiente y se detiene, evitando una recuperación a ciegas mientras el nodo colgante aún está referenciado por el kernel. En ese caso, debe tomarse un nuevo arranque del teléfono como límite para el siguiente intento.

Alcance del repositorio

Este repositorio no incluye: copias de seguridad del dispositivo, imágenes boot/init_boot, imágenes de particiones, payload.bin, kernels/ELF extraídos del firmware, registros de ejecución sin procesar, números de serie de ADB ni boot IDs. logs/ y build/ están ignorados por Git. En bin/ solo hay cuatro binarios temporales de la cadena de escalada de privilegios.

Advertencias de seguridad

Descargar herramienta