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
leaky-vessels-dynamic-detector — Detector de tiempo de ejecución basado en eBPF para vulnerabilidades de escape de contenedores en runc y Docker, que monitorea llamadas al sistema y llamadas al daemon de Docker para detectar la explotación de CVE-2024-21626, CVE-2024-23651, CVE-2024-23652 y CVE-2024-23653 durante compilaciones y tiempo de ejecución. | Kitploit
Herramientas/GitHubGitHub/snyk/leaky-vessels-dynamic-detector
Herramientas DefensivasSeguridad de ContenedoresAnálisis Dinámico (Sandboxing)Análisis de VulnerabilidadesSeguridad en la NubeDetección de IntrusionesArchived
GitHubsnyk/leaky-vessels-dynamic-detector

leaky-vessels-dynamic-detector

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 →
Ver Repositorio
1058hace 1 añoRevisado por Kitploit

Acerca de

Detector de tiempo de ejecución basado en eBPF para vulnerabilidades de escape de contenedores en runc y Docker, que monitorea llamadas al sistema y llamadas al daemon de Docker para detectar la explotación de CVE-2024-21626, CVE-2024-23651, CVE-2024-23652 y CVE-2024-23653 durante compilaciones y tiempo de ejecución.

Compartir

ADVERTENCIA

Este repositorio está ahora archivado.

No se realizarán más actualizaciones al código y puede ser inseguro o incluso estar roto para cuando leas este aviso. Considéralo solo con fines históricos y trátalo con cuidado.

Detector Dinámico de Leaky Vessels

snyk-oss-category

En este repositorio encontrarás una implementación de referencia para una detección en tiempo de ejecución basada en eBPF para las vulnerabilidades de runc y Docker CVE-2024-21626, CVE-2024-23651, CVE-2024-23652 y CVE-2024-23653. Se engancha a las llamadas al sistema de Linux (p. ej., chdir, mount) y a las invocaciones de funciones del demonio de Docker y las asocia con builds de Docker y procesos de contenedores para identificar explotaciones de estas vulnerabilidades. Para un enfoque basado en análisis estático, consulta .

este

runc process.cwd y fds filtrados: Escape de contenedor [CVE-2024-21626]

CVE-2024-21626 es una vulnerabilidad en el runtime de contenedores runc que permite a un atacante escapar del aislamiento del contenedor y lograr un RCE completo como root mediante una imagen manipulada que explota un problema en el manejo de la instrucción WORKDIR. Dado que existe una condición de "carrera" entre el momento en que se abren y se cierran algunos descriptores de archivo hacia el host, un atacante puede crear un Dockerfile con la siguiente instrucción WORKDIR /proc/self/fd/[ID] (siendo ID un descriptor de archivo dependiente del sistema) que apuntará al sistema de archivos de la máquina host subyacente. Esto puede explotarse al ejecutar:

  1. docker build - En 2 casos:
    • Cuando el Dockerfile que se está construyendo contiene la instrucción que desencadena la explotación.
    • Cuando el Dockerfile que se está construyendo hace referencia a una imagen base mediante la instrucción FROM que contiene un comando ONBUILD que desencadena la explotación, p. ej., ONBUILD WORKDIR /proc/self/fd/[ID]. La instrucción ONBUILD inyecta el comando no en la imagen que lo contiene, sino en la imagen que la usa como imagen base. Esto significa que si una imagen base está comprometida o es intencionalmente maliciosa, es decir, alojada en Dockerhub u otros registros públicos de contenedores, la explotación es posible incluso si nada cambia en la imagen que el comando docker build realmente construye.
  2. docker run

Por lo tanto, esta vulnerabilidad puede poner en riesgo tanto los sistemas de build como los entornos de producción.

Carrera de caché de montaje de Buildkit: Escape de contenedor por condición de carrera en tiempo de build [CVE-2024-23651]

CVE-2024-23651 es una vulnerabilidad en Docker donde un comando RUN usa la bandera --mount=cache. Existe una vulnerabilidad de tiempo de verificación/tiempo de uso (TOCTOU) entre la comprobación de que un directorio source existe en el host del demonio de Docker y la llamada real a la syscall mount. Un atacante puede crear un Dockerfile que coloque un enlace simbólico entre estas dos llamadas para inducir un bind mount arbitrario que resulte en un RCE completo como root en el host. Esta vulnerabilidad solo afecta al comando docker build.

Verificación de privilegios SecurityMode de GRPC de Buildkit [CVE-2024-23653]

CVE-2024-23653 es una vulnerabilidad en Docker que ocurre cuando se usa un generador LLB personalizado de Buildkit con la directiva # syntax. El generador puede usar las llamadas GRPC Client.NewContainer y Container.Start para ejecutar un nuevo contenedor durante el build. El argumento StartRequest.SecurityMode no se verifica adecuadamente contra las expectativas de privilegios del demonio de Docker o de la llamada docker build, lo que permite al llamador de GRPC crear un contenedor privilegiado durante el build. Este nuevo contenedor privilegiado puede luego ser escapado para obtener un RCE completo como root en el host de build. Esta vulnerabilidad solo afecta al comando docker build.

Eliminación arbitraria en el desmontaje de contenedores en tiempo de build de Buildkit [CVE-2024-23652]

CVE-2024-23652 es una vulnerabilidad de eliminación arbitraria en Docker. Cuando se usa RUN --mount en un Dockerfile, si el destino del montaje no existe, se creará para ese entorno. Cuando la ejecución se completa, este directorio creado se limpiará. Si el comando en ejecución cambia la ruta utilizada para el montaje a un enlace simbólico, el procedimiento de limpieza atravesará este enlace simbólico y potencialmente limpiará directorios arbitrarios en el sistema de archivos raíz del host. Esta vulnerabilidad solo afecta al comando docker build.

Instalación y uso

Detección eBPF en tiempo de build

La detección en tiempo de build se aplica a las 4 vulnerabilidades.

  1. Compila el binario del detector: GOOS=linux GOARCH={{amd64/arm64}} go build.
  2. Ejecuta el binario compilado en segundo plano usando sudo (como lo requiere eBPF) en tu entorno de build (es decir, sudo ebpf-detector &).
  3. Si se detecta una explotación de una de las vulnerabilidades, verás Leaky vessels vulnerability detected impreso en STDOUT, junto con el CVE respectivo, el nombre de la vulnerabilidad y análisis forense adicional.

Detección eBPF en tiempo de ejecución para Kubernetes

La detección en tiempo de ejecución se aplica solo a la vulnerabilidad WORKDIR (CVE-2024-21626).

  1. Construye la imagen de contenedor del detector usando el Dockerfile proporcionado y súbela a un registro de imágenes.
  2. Completa el valor de image en el detector.yaml (marcado con TODO).
  3. Ejecuta el detector como un DaemonSet en tu clúster de Kubernetes ejecutando kubectl apply -f detector.yml.
  4. Si se detecta una explotación de la vulnerabilidad WORKDIR, verás Leaky Vessels vulnerability detected impreso en los registros de los pods del DaemonSet.

Pruebas

Las pruebas unitarias deben ejecutarse con sudo, ya que dependen de eBPF: sudo go test ebpf-detector/....

Limitaciones

  • Requiere acceso root / ejecutar contenedores en modo privilegiado (requerido por eBPF).
  • La explotación de WORKDIR en tiempo de ejecución (CVE-2024-21626) ocurre durante la inicialización del contenedor, por lo que no se detectará en contenedores en ejecución. La detección también asume que el runtime de contenedores es containerd.
  • Las detecciones de Carrera de caché de montaje de Buildkit (CVE-2024-23651) y Eliminación arbitraria en el desmontaje de contenedores en tiempo de build de Buildkit (CVE-2024-23652) se basan en temporización y pueden tener falsos negativos debido a condiciones de carrera.
  • Probado en los siguientes entornos:
    • Ubuntu 20.04/22.04 (AMD64)
    • GKE (Ubuntu y Alpine Linux, AMD64)
    • EKS (Ubuntu y Alpine Linux, AMD64) - compatible con versiones de EKS >= 1.25
    • Ubuntu 22.04 (ARM64)

Problemas

Para obtener una lista actualizada de errores y problemas, consulta los problemas del proyecto.

Contribuciones

Las contribuciones son bienvenidas. Consulta CONTRIBUTING.md para más detalles.

Licencia

El Detector Dinámico de Leaky Vessels está bajo la licencia Apache-2.0. Consulta LICENSE para más información.

Descargar herramienta