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-2024-1065 — Exploit de prueba de concepto para CVE-2024-1065, que demuestra la explotación de la caché de páginas mediante un use-after-free en el controlador del kernel de GPU ARM Mali para lograr la ejecución arbitraria de código como root sin modificación del disco. | Kitploit
Herramientas/GitHubGitHub/kuzeyardabulut/cve-2024-1065
Escalada de PrivilegiosForensia de MemoriaAnálisis de VulnerabilidadesExplotaciónShellcodeDesarrollo de PayloadsExplotación de Binarios
GitHubkuzeyardabulut/cve-2024-1065

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-2024-1065

Exploit de prueba de concepto para CVE-2024-1065, que demuestra la explotación de la caché de páginas mediante un use-after-free en el controlador del kernel de GPU ARM Mali para lograr la ejecución arbitraria de código como root sin modificación del disco.

Ver Repositorio
414hace 3 mesesAún no revisado

CVE-2024-1065 — PoC de explotación de page cache

Exploit de prueba de concepto para CVE-2024-1065, un use-after-free de página física en el driver del kernel de la GPU ARM Mali. El exploit demuestra la explotación de page cache: mediante una condición de carrera, una página MIGRATE_MOVABLE liberada se asigna a la imagen de código en memoria de un binario SUID, para después sobrescribirla y lograr la ejecución arbitraria de código como root sin modificar ningún archivo en disco.

Solo con fines de investigación. Este PoC apunta a una vulnerabilidad parcheada en un sistema de pruebas x86 controlado. La ruta de código vulnerable no puede activarse desde el espacio de usuario en dispositivos Pixel de producción.


Cómo funciona

  1. Desencadenar el UAF — Una página anónima se importa al driver de GPU Mali mediante KBASE_IOCTL_MEM_IMPORT y se mapea dos veces en el espacio de usuario. Liberar ambos mapeos devuelve la página física a la lista libre de buddy MIGRATE_MOVABLE mientras cpu_mapping2 todavía mantiene un alias de ella.

  2. Spray de page cache — El exploit abre /usr/bin/passwd 100 veces y expulsa repetidamente la página en PAGE_OFFSET con posix_fadvise(POSIX_FADV_DONTNEED); después provoca un fallo de caché con pread. Cada fallo obliga al kernel a asignar una página MIGRATE_MOVABLE nueva, recorriendo la lista libre hasta que se selecciona la página UAF.

  3. Confirmar la superposición — Una lectura de un byte de prueba a través de cpu_mapping2 en MAIN_OFFSET confirma que la página UAF ahora respalda la entrada de page cache del binario. Los valores 0x00 y 0x61 indican un fallo; cualquier otro valor corresponde a código binario real.

  4. Inyectar shellcode — Un memcpy a través de cpu_mapping2 sobrescribe main() con un shellcode que llama a setuid(0), setgid(0) y execve("/bin/sh").

  5. Ejecutar — Se llama a execve("/usr/bin/passwd"). El cargador ELF mapea como ejecutables las páginas de page cache del binario. La página corrupta ya está presente — no se produce ninguna lectura de disco —, por lo que el shellcode se ejecuta como root.


Requisitos


Compilación

root@kitploit:~
gcc -O2 -o exploit exploit.c

Uso

root@kitploit:~
./exploit

Salida esperada:

root@kitploit:~
[*] Opened /usr/bin/passwd x100
[*] MEM_IMPORT: flags=0x...  gpu_va=0x...  va_pages=0x1
[*] gpu_mapping  (VA 1): 0x...
[*] cpu_mapping2 (VA 2): 0x...
[*] UAF triggered — stale mapping alive at 0x...
[*] Spraying page cache (100 attempts)...
[+] Overlap confirmed on attempt N (byte=0xf3) — cpu_mapping2 aliases the page cache!
[*] Shellcode written. Triggering execve...
# id
uid=0(root) gid=0(root) groups=0(root)

Reorientación

Todos los valores específicos del objetivo están definidos al principio de exploit.c:

root@kitploit:~
#define TARGET_BINARY  "/usr/bin/passwd"
#define PAGE_OFFSET    0x4000   /* file offset of the page containing main() */
#define MAIN_OFFSET    0xbc0    /* intra-page offset of main()               */

Para reorientar el exploit a otro binario, localiza el desplazamiento de la función desensamblando _start en la dirección del punto de entrada (readelf -h) y luego calcula:

root@kitploit:~
PAGE_OFFSET = sym_va & ~0xfff
MAIN_OFFSET = sym_va &  0xfff

Verifica antes de ejecutar:

root@kitploit:~
dd if=<TARGET_BINARY> bs=1 skip=$((PAGE_OFFSET + MAIN_OFFSET)) count=8 2>/dev/null | xxd

Solución de problemas


Referencias

  • CVE-2024-1065 — Informe de error de Project Zero
  • Dirty Pagetable — Black Hat USA 2023
  • La vulnerabilidad Dirty Pipe (CVE-2022-0847)
Descargar herramienta
RequisitoValor
Arquitecturax86-64
Kernel5.15 (probado en 5.15.0+)
Configuración del kernelCONFIG_MALI_NO_MALI=y, CONFIG_MALI_CSF_SUPPORT=y, r48
Dispositivo/dev/mali0 accesible desde el espacio de usuario
Binario objetivo/usr/bin/passwd (SUID root)
SíntomaCausaSolución
El spray falla tras 100 intentosLa página UAF se consumió antes de la ventana de la condición de carreraExpulsa previamente la página objetivo antes de desencadenar el UAF; aumenta NUM_FDS
kernel BUG at mm/page_poison.cLa comprobación de sonda pasó con el byte de page-poison 0xaaAñade probe != 0xaa a la comprobación de confirmación
SYSCHK falla en MEM_IMPORTEl driver Mali no está cargado o la versión es incorrectaComprueba CONFIG_MALI_NO_MALI y el handshake de versión del driver