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
ghostlock-a17 — Exploit de kernel para CVE-2026-43499 en Samsung Galaxy A17 que logra root mediante bypass de KDP, recuperación de KASLR y ejecución de workqueue forjada con shell persistente. | Kitploit
Herramientas/GitHubGitHub/mobilehackinglab/ghostlock-a17
Seguridad AndroidEscalada de PrivilegiosMecanismos de PersistenciaExplotaciónPost-ExplotaciónSeguridad MóvilExplotación de Binarios
GitHubmobilehackinglab/ghostlock-a17

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

ghostlock-a17

Exploit de kernel para CVE-2026-43499 en Samsung Galaxy A17 que logra root mediante bypass de KDP, recuperación de KASLR y ejecución de workqueue forjada con shell persistente.

Ver Repositorio
176126hace 2 mesesAún no revisado

GhostLock — CVE-2026-43499 en Samsung Galaxy A17

Cadena de explotación completa de usuario a root para CVE-2026-43499 ("GhostLock") en el Samsung Galaxy A17 SM-A175F, ejecutando Android 16 / GKI 6.12.

La cadena comienza desde las primitivas públicas de GhostLock y termina con un helper en modo usuario ejecutándose como:

uid=0(root) gid=0(root) groups=0(root)
context=u:r:kernel:s0

También inicia un shell root persistente por arranque a través de g4d / g4sh y sale sin un kernel panic.

📖 Análisis técnico completo:
https://www.mobilehackinglab.com/blog/cve-2026-43499-ghostlock-a17-root-shell

Nota de investigación

No descubrimos CVE-2026-43499. El crédito por la vulnerabilidad original y la investigación de IonStack corresponde a Nebula Security.

Este repositorio documenta nuestro port independiente al Samsung Galaxy A17, los cambios necesarios para las protecciones del kernel de Samsung y una nueva etapa final de explotación.

Solo para fines de investigación de seguridad autorizada y educativos.


Objetivo

CVECVE-2026-43499 — "ghostlock"
DispositivoSamsung Galaxy A17 (SM-A175F, mt6789)
GPUMali-G57
Kernel6.12.23-android16-5-abA175FXXS3BZA5-4k
Resultadouid=0(root) / u:r:kernel:s0
Shell rootdemonio g4d + cliente g4sh
PersistenciaPor arranque
Salida del exploitLimpia, sin kernel panic
Mitigaciones encontradasSamsung KDP, DEFEX, SELinux, PANIC_ON_OOPS, arm64 KASLR
Firmware compatibleA175FXXS3BZA5 (kernel 6.12.23) y A175FXXS6CZG1 (kernel 6.12.38, SPL 2026-07-05) — ambos verificados en dispositivo, misma cadena

¿Qué hace diferente a este port?

La investigación original de ghostlock proporciona las primitivas de entrada:

pselect reclaim
      ↓
fake rt_mutex_waiter
      ↓
constrained rb-tree pointer write

En el Galaxy A17, sin embargo, el desenlace habitual de parcheo de credenciales no funciona.

Samsung KDP bloquea la escritura habitual de credenciales

KDP protege los datos del kernel relacionados con credenciales en EL2.

En esta compilación, los intentos de modificar las credenciales de las tareas se descartaban silenciosamente incluso cuando las direcciones objetivo eran correctas.

Por lo tanto, en lugar de escribir credenciales de root, este port hace que el kernel se ejecute con las credenciales privilegiadas existentes.

Nuevo desenlace: ejecución mediante workqueue falsificada

La etapa final:

constrained kernel write
        ↓
physical read/write channel
        ↓
KASLR slide recovery
        ↓
discover system_wq / cpu_pwq
        ↓
forge work_struct
        ↓
call_usermodehelper_exec_work
        ↓
/system/bin/sh
        ↓
uid=0(root), u:r:kernel:s0

Se coloca un elemento de trabajo falsificado en un pool system_wq vinculado y se activa con una tormenta de asignación/liberación de ptmx.

El helper resultante en modo usuario se ejecuta con credenciales de init.

No se requiere sobrescribir las credenciales de la tarea.


Cadena de explotación

userspace shell (uid 2000)
        │
        ▼
pselect / PI-futex primitive
        │
        ▼
constrained aligned kernel pointer write
        │
        ▼
forged pipe_buffer channel
        │
        ▼
arbitrary physical read/write
        │
        ├── recover KASLR slide
        │
        ├── locate system_wq / cpu_pwq
        │
        └── prepare forged work_struct
        │
        ▼
queue usermode-helper work
        │
        ▼
ptmx storm wakes worker
        │
        ▼
/system/bin/sh runs with init creds
        │
        ▼
uid=0(root)
        │
        ▼
g4d → @ghostlockd → g4sh

Cambios clave de ingeniería

En comparación con el port público de OnePlus, la mayoría de las etapas posteriores a la primitiva de escritura inicial fueron reelaboradas.

1. Nueva etapa de root compatible con KDP

La fase final de parcheo de credenciales fue reemplazada por un elemento de workqueue falsificado dirigido a la ruta de ejecución del usermode-helper.

Esto evita por completo la escritura de estructuras cred protegidas.

2. Nuevo oráculo de desplazamiento de KASLR

El enfoque anterior de anclaje mediante perf-event no era fiable en este dispositivo.

En su lugar, el exploit utiliza tres punteros desplazados de la entrada ctl_table de boot_id:

procname
data
proc_handler

Los tres se validan de forma cruzada antes de aceptar la diapositiva.

3. Descubrimiento de workqueue en tiempo de ejecución

cpu_pwq se descubre recorriendo:

system_wq → pwqs

en lugar de depender de un desplazamiento fijo específico del dispositivo.

4. Salida limpia del exploit

El canal original deja cambios colaterales en el estado de struct page que pueden desencadenar PANIC_ON_OOPS durante el desmontaje.

La cadena actual evita el fallo de desmontaje y se ha demostrado que sale limpiamente después de obtener root.

5. Shell de root

El helper de modo usuario inicia:

g4d

que escucha en el socket Unix abstracto:

@ghostlockd

g4sh se conecta a él y proporciona ya sea un shell root interactivo o la ejecución de un comando puntual.

/data/local/tmp/a/g4sh
/data/local/tmp/a/g4sh -c "id"

Por qué el Galaxy A17 es interesante

Este objetivo combina varias protecciones que rompen las técnicas comunes de explotación del kernel de Android:

  • Samsung KDP — protege los datos del kernel relacionados con credenciales en EL2
  • DEFEX — restringe la ejecución privilegiada desde rutas no confiables
  • SELinux
  • PANIC_ON_OOPS / PANIC_ON_BUG
  • Grandes desplazamientos de KASLR en arm64
  • Primitiva de escritura restringida solo a punteros

Esto forzó una estrategia de explotación diferente a la habitual:

arbitrary RW → patch cred → disable SELinux

En su lugar:

arbitrary RW → recover runtime state → forge kernel work → execute usermode helper

Compilación

Requiere un Android NDK reciente.

make        # BZA5 firmware (kernel 6.12.23)
make czg1   # CZG1 firmware (kernel 6.12.38): per-target slide anchors,
            # offsets are uname-keyed at runtime

Produce:

ghostlock   # exploit (ghostlock-czg1 for the CZG1 build)
g4d         # static root-shell daemon
g4sh        # root-shell client

Ejecutar

Sube los binarios:

adb push ghostlock /data/local/tmp/a/g4
adb push g4d /data/local/tmp/a/g4d
adb push g4sh /data/local/tmp/a/g4sh

adb shell 'chmod 755 /data/local/tmp/a/g4 /data/local/tmp/a/g4d /data/local/tmp/a/g4sh'

Ejecute el bucle de explotación con reconocimiento de reinicio:

./scripts/rr_loop4.sh

Después de ROOTED:

adb shell /data/local/tmp/a/g4sh

O ejecute un único comando:

adb shell '/data/local/tmp/a/g4sh -c "id"'

Resultado esperado:

uid=0(root) gid=0(root) groups=0(root) context=u:r:kernel:s0

Fiabilidad

El primitivo es probabilístico y depende en gran medida de las condiciones de arranque.

La explotación exitosa puede requerir intentos repetidos. El script incluido rr_loop4.sh gestiona los reintentos y los ciclos de reinicio automáticamente.

Este es un exploit de investigación, no una herramienta de rooteo instantánea de un solo intento.


Validación con QEMU

qemu-e2e/ contiene un arnés de validación de extremo a extremo que utiliza el kernel de Samsung extraído.

El arnés se utilizó para probar:

  • cambios en la cadena de explotación
  • manejo de KASLR
  • falsificación de workqueue
  • ejecución de usermode-helper
  • desmontaje limpio del exploit
  • idas y vueltas de g4d / g4sh

La imagen del kernel de Samsung en sí no está incluida.

Véase:

qemu-e2e/

para obtener instrucciones de configuración.


Estructura del repositorio

Descargar herramienta