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
badepoll-selinux-disabler — Usa CVE-2026-43074 para deshabilitar SELinux en Android (Linux 6.6/6.12) | Kitploit
Herramientas/GitHubGitHub/perongh/badepoll-selinux-disabler
Seguridad AndroidEscalada de PrivilegiosFrameworks de ExploitsExplotaciónRed TeamingDesarrollo de PayloadsExplotación de Binarios
GitHubperongh/badepoll-selinux-disabler

badepoll-selinux-disabler

Usa CVE-2026-43074 para deshabilitar SELinux en Android (Linux 6.6/6.12)

Ver Repositorio
62hace 1 mesAú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

badepoll-selinux-disabler

Extracción independiente de la etapa de deshabilitación de SELinux del exploit de UAF de eventpoll CVE-2026-43074. Explota la condición de carrera en la comprobación de profundidad de bucle de eventpoll (ep_get_upwards_depth_proc) para escribir un cero en selinux_state.enforcing, cambiando el dispositivo a Permissive mediante una escritura de un solo byte en el kernel. Esto es únicamente la primitiva de deshabilitación de MAC: no hay escalada de privilegios.

[!WARNING] Prueba de concepto de exploit del kernel. Puede bloquear el kernel, corromper datos o dejar el dispositivo en un estado inconsistente. Ejecútalo solo en dispositivos de tu propiedad o para los que estés autorizado a realizar pruebas. Haz una copia de seguridad primero.

Origen

Recortado del PoC completo de NebuSec (árbol de fuentes). El UAF se encuentra en la comprobación de profundidad de bucle de eventpoll (ep_get_upwards_depth_proc), que recorre epi->ep bajo RCU mientras que ep_free() puede liberar el struct eventpoll desde un hilo concurrente. El kernel upstream lo corrigió difiriendo la liberación a un período de gracia de RCU (commit 07712db8; NVD, OSV).

Esto es distinto de «Bad Epoll» (CVE-2026-46242), un use-after-free independiente en ep_remove() dentro del mismo código de eventpoll; la condición de carrera aquí es específicamente el bug de ciclo de vida de la comprobación de profundidad de bucle corregido por 07712db8.

Kernels afectados

Según el CNA de kernel.org (a través de OSV/NVD), las ramas estables vulnerables y sus correcciones:

  • 6.4.0 – <6.6.136 (corregido en 6.6.136)
  • 6.7.0 – <6.12.83 (corregido en 6.12.83)
  • 6.13.0 – <6.18.24 (corregido en 6.18.24)
  • 6.19.0 – <6.19.14 (corregido en 6.19.14)

El kernel objetivo fijado 6.6.118-android15-8 se encuentra dentro del rango 6.6 afectado (corregido en 6.6.136). Los kernels de proveedores que hicieron backport del parche sin aumentar la versión de upstream no son vulnerables; verifica la presencia real del parche en lugar de confiar únicamente en uname -r.

Objetivo

Fijado a una compilación exacta: el byte de enforcing se alcanza mediante un alias de KVA hardcodeado y la condición de carrera depende del diseño de slab de ese kernel:

  • Dispositivo: Pixel 10 Pro / blazer
  • Kernel: 6.6.118-android15-8-g53e6e091166e-ab15266607-4k
  • Huella: google/blazer/blazer:17/CP2A.260705.006/15641320:user/release-keys
  • Alias: TARGET_SELINUX_ENFORCING_ALIAS = 0xffffff800236a2e0

Reorientar el exploit a otra compilación requiere recalcular el alias (offset de imagen de selinux_state + base de mapeo + dirección de carga) en src/target.h.

Compilación

Requiere el Android NDK con la cadena de herramientas clang para aarch64. Usa por defecto NDK_ROOT=/opt/android-ndk, API=35:

root@kitploit:~
make            # → build/disabler

Se puede sobrescribir según sea necesario:

root@kitploit:~
make API=35 NDK_ROOT=/path/to/android-ndk

Ejecución

Envía build/disabler al dispositivo y ejecútalo como el usuario shell (uid 2000). SELinux debe estar en modo Enforcing al inicio; de lo contrario, el binario omite la operación. En caso de éxito:

root@kitploit:~
SELINUX_AFTER Permissive
RESULT PASS selinux_zero attempt=N

Verifica con getenforce → Permissive.

Alcance

El exploit original añade, además de esta primitiva, un redireccionamiento de flags del búfer de pipe (escritura estilo DirtyPipe en una página de page-cache de solo lectura) que parchea /system/bin/dumpstate para generar un daemon root. Esas etapas (pipe.c, patch.c, su.c, payloads.S y la orquestación del main.c original) se han omitido aquí, y late_refs.c se ha reducido a su ruta de redirección de byte cero. Deshabilitar SELinux por sí solo no otorga root; solo elimina la aplicación de MAC para que la carga útil portadora pueda ejecutarse sin confinamiento.

Descargar herramienta