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
GhostLock-OPPO-PCKM00 — CVE-2026-43499 GhostLock futex UAF LPE PoC para OPPO PCKM00 (SM6150) / Linux 4.14.180 | Kitploit
Herramientas/GitHubGitHub/yijiacloud/ghostlock-oppo-pckm00
Seguridad AndroidEscalada de PrivilegiosMecanismos de PersistenciaAnálisis de VulnerabilidadesExplotaciónPost-ExplotaciónSeguridad MóvilDesarrollo de PayloadsExplotación de Binarios
GitHubyijiacloud/ghostlock-oppo-pckm00

GhostLock-OPPO-PCKM00

CVE-2026-43499 GhostLock futex UAF LPE PoC para OPPO PCKM00 (SM6150) / Linux 4.14.180

1hace 10 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
Ver Repositorio

GhostLock — OPPO PCKM00 (4.14.180) PoC

CVE-2026-43499 (GhostLock) — PoC de escalada de privilegios local por use-after-free en la herencia de prioridades de futex del kernel de Linux, portado al OPPO PCKM00 (OP4A57, SM6150, Android 11, kernel 4.14.180-perf+).

AVISO LEGAL / 免责声明 Este proyecto es solo para investigación de seguridad autorizada y fines educativos. No lo utilice en ningún dispositivo que no sea de su propiedad o para el que no tenga autorización explícita de prueba. La ejecución del exploit puede provocar un bloqueo del kernel. El autor no asume ninguna responsabilidad por el mal uso o los daños.

本项目仅用于授权的安全研究与教育目的。请勿在非本人所有或未获明确授权的设备上使用。运行利用可能导致内核崩溃,作者不承担任何滥用或损失的责任。


1. Vulnerabilidad

CVE-2026-43499 (GhostLock) es un use-after-free en el código de herencia de prioridades de futex del kernel de Linux. El fallo reside en el uso indebido de remove_waiter() en la ruta de reversión del bloqueo proxy de rt_mutex_start_proxy_lock(). El rt_mutex_waiter liberado (asignado en la pila del kernel) se reinterpreta como un fd_set controlado por el atacante, copiado mediante pselect(), lo que proporciona una primitiva de escritura arbitraria.

Rango afectado: Linux 4.x–6.x (introducido en 2011). La serie 4.14 se ve totalmente afectada. Consulte report.md para ver el análisis completo y los offsets de símbolos verificados.

Cadena del exploit

root@kitploit:~
futex requeue-pi UAF
   └─> pselect fd_set stack copy (fake rt_mutex_waiter / fake task)
         └─> arbitrary write (rt_mutex tree ops / sched_setattr)
               └─> overwrite ashmem_fops -> configfs bin read/write
                     └─> pipe_buffer page rewrite (physical RW primitive)
                           └─> patch current task cred -> root

El PoC se ejecuta íntegramente en espacio de usuario mediante LD_PRELOAD — no se requiere reiniciar el dispositivo (salvo que el kernel entre en pánico).


2. Objetivo

Para portar a otros dispositivos 4.14: copie exploit/targets/oppo-pckm00/target.h y regenere los offsets de símbolos a partir de su imagen del kernel (consulte analysis/).


3. Estructura del repositorio

root@kitploit:~
.
├── report.md                    # Full vulnerability analysis & verified offsets
├── exploit/
│   ├── Makefile                 # Build preload.so (Windows NDK / WSL)
│   ├── src/
│   │   ├── preload.c            # LD_PRELOAD entry + forced disk logging + su
│   │   ├── main.c               # Orchestration (waiter/owner/consumer threads)
│   │   ├── slide.c              # KASLR leak (boot_id / nfulnl loggers)
│   │   ├── fops.c               # ashmem_fops overwrite + configfs primitive
│   │   ├── pipe.c               # pipe_buffer physrw primitive
│   │   ├── root.c               # task walk + cred patch + seccomp/selinux
│   │   ├── util.c               # kernelsnitch, skb page prep, kernel RW
│   │   ├── su_daemon.c          # embedded su server (drop-in)
│   │   ├── su_blob.S            # .incbin of su_daemon
│   │   └── wallpaper_blob.S     # .incbin of wallpaper payload
│   ├── targets/oppo-pckm00/target.h   # 4.14.180 symbol/struct offsets
│   └── assets/wallpaper.webp    # embedded wallpaper payload
├── analysis/                    # kernel image / kallsyms extraction scripts
└── LICENSE                      # Apache-2.0 (same as upstream GhostLock)

4. Compilación

Requiere Android NDK r29 (aarch64-linux-android30-clang).

NDK de Windows

root@kitploit:~
set NDK=C:\path\to\android-ndk-r29
make NDK=%NDK%

WSL (recomendado)

root@kitploit:~
# put NDK at /opt/ndk/android-ndk-r29 (linux-x86_64 toolchain)
cd exploit
make wsl
# or directly:
bash ../analysis/build_preload.sh

Salida: exploit/preload.so (objeto compartido ELF aarch64 de 64 bits).

La compilación también genera un binario PIE a partir de su_daemon.c y lo incrusta (junto con el fondo de pantalla) en el .so mediante los blobs .S.


5. Uso

root@kitploit:~
adb push exploit/preload.so /data/local/tmp/preload.so
adb shell LD_PRELOAD=/data/local/tmp/preload.so id

Si tiene éxito, el shell muestra uid=0(root). Se instala un daemon su en /apex/com.android.virt/bin/su (con respaldo en /data/local/tmp/su) y se aplica un fondo de pantalla incrustado como artefacto de persistencia/verificación.

Registro forzado en disco en tiempo real

Todos los diagnósticos pr_* también se escriben en /sdcard/Download/log_<timestamp>.txt (con respaldo en /data/local/tmp/log_<timestamp>.txt), con O_SYNC + fsync() en cada línea para que los registros sobrevivan a un pánico del kernel / reinicio — descárguelos con:

root@kitploit:~
adb pull /sdcard/Download/log_*.txt

6. Notas y limitaciones

  • KASLR: el PoC filtra el slide mediante la ruta del logger boot_id/nfulnl (slide.c) más una pasada de verificación de ashmem_fops (fops.c).
  • Diferencias 4.14 vs 6.x tratadas en este port:
    • configfs usa .read/.write heredados (sin read_iter/write_iter),
    • ashmem_fops no tiene show_fdinfo,
    • generic_file_splice_read reemplaza a copy_splice_read,
    • selinux_enforcing se encuentra dentro de struct selinux_state,
    • layouts de 4.14 de / / .

7. Créditos

  • NebuSec — investigación original de GhostLock y framework de exploit (IonStack/CVE-2026-43499), Apache-2.0. https://github.com/NebuSec/CyberMeowfia
  • KernelSnitch (canal lateral del hash de futex) se incluye según los términos de su proyecto upstream.

Licencia

Apache-2.0 — consulte LICENSE.

Descargar herramienta
CampoValor
DispositivoOPPO PCKM00 / OP4A57
SoCQualcomm SM6150
Android11 (RKQ1.200903.002)
Parche de seguridad2022-09-05
Kernel4.14.180-perf+ (arm64, clang 10.0.7)
CompilaciónOPPO/PCKM00/PCKM00:11/RKQ1.200903.002/1635513065:user/release-keys
rt_mutex_waiter
pipe_inode_info
cred
  • Algunos offsets de estructuras (p. ej. task_struct.seccomp) son de mejor esfuerzo; el fallo al parchear seccomp no bloquea el root por sobrescritura de cred.
  • Ejecutar el exploit puede provocar un pánico del kernel (~97 % de fiabilidad en ~5 s en el objetivo); use un dispositivo aislado.