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-2023-5178 — Exploit para CVE-2023-5178 | Kitploit
Herramientas/GitHubGitHub/rockrid3r/cve-2023-5178
Escalada de PrivilegiosForensia de MemoriaAnálisis de VulnerabilidadesExplotaciónAprendizaje y EducaciónExplotación de Binarios
GitHubrockrid3r/cve-2023-5178

CVE-2023-5178

Exploit para CVE-2023-5178

Ver Repositorio
75hace 2 añosAú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

CVE-2023-5178

El exploit para la vulnerabilidad CVE-2023-5178: NVMe-oF-TCP, que es un error de lógica en el controlador NVMe-oF-TCP durante el manejo de una Initialize Connection Request corrupta. Conduce a un doble-free con condición de carrera en kmalloc-96, que puede explotarse para obtener LPE (ver la demo más abajo).

El exploit está dirigido a Ubuntu 23.10 con el kernel 6.5.0-9-generic (la última versión del kernel afectada).

  • Se puede adaptar fácilmente a versiones anteriores del kernel v6 cambiando los símbolos del kernel y ajustando la ropchain.
  • Adaptarlo a la versión v5 del kernel requiere algunas modificaciones menores que discutiré en el informe. La explotación en el kernel v5 es más fácil (lo discutiré en el informe) y es más fiable.

El fallo fue descubierto por Alon Zahavi. Publicó una buena descripción de la vulnerabilidad en este artículo de openwall.

DEMOSTRACIÓN

Mira el vídeo aquí. IMAGEN DE DEMO 1 AQUÍ IMAGEN DE DEMO 2 AQUÍ

Requisitos

  • Debes tener los módulos nvmet, nvmet-tcp cargados en el kernel.
  • Asegúrate de tener libfuse3-dev (está por defecto en Ubuntu, pero de todos modos). Si no lo tienes, lo mejor es descargar y compilar la versión desde github. Yo usé 3.14.0, pero debería funcionar con otras versiones también.
  • Actualmente el exploit solo funciona en máquinas con 1 núcleo de CPU. Se trata únicamente de cómo funciona SLUB, pero la condición de carrera hace que las cosas sean un poco complicadas. De todos modos, describiré en el informe cómo se puede mejorar para manejar máquinas con múltiples CPUs.

Configuración

root@kitploit:~
git clone https://github.com/rockrid3r/CVE-2023-5178
cd CVE-2023-5178
make
./build/xpl # run the exploit
  • En caso de que no tengas libfuse3-dev, debes enlazar manualmente la libfuse compilada. Consulta el Makefile para saber cómo compilar. Reemplaza -lfuse3 por -l:path-to-libfuse.so. No olvides añadir la ruta de las cabeceras con -I /path/to/libfuse-headers/. Ejecuta el exploit con:
root@kitploit:~
LD_PRELOAD_PATH=/path/to/libfuse.so ./build/exploit

POC

Para quienes quieran comprobar si la vulnerabilidad está presente en sus sistemas, hay un archivo src/poc.c que simplemente dispara el fallo. Asume la configuración estándar de IP/puerto para NVMe-oF-TCP en tu sistema. Debes ajustarlos si los tuyos no son los predeterminados:

root@kitploit:~
#define NVME_SERVER_IP      "0.0.0.0"   // ip of vulnerable host in LAN (localhost here).
#define NVME_SERVER_PORT    4420        // port on which NVMe-oF-TCP is set up on vulnerable host

Compílalo y ejecútalo con

root@kitploit:~
make build/poc
./build/poc

Solo tienes que ejecutarlo (quizás varias veces) y luego esperar un poco. Si la vulnerabilidad está presente, el sistema se bloqueará.

Informe

Consulta el informe completo aquí

Descargar herramienta