Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
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
leaky-vessels-dynamic-detector — Detector de runtime baseado em eBPF para vulnerabilidades de fuga de contêineres em runc e Docker, monitorando chamadas de syscall e do daemon do Docker para detectar a exploração de CVE-2024-21626, CVE-2024-23651, CVE-2024-23652 e CVE-2024-23653 durante builds e runtime. | Kitploit
Ferramentas/GitHubGitHub/snyk/leaky-vessels-dynamic-detector
Ferramentas DefensivasSegurança de ContêineresAnálise Dinâmica (Sandboxing)Análise de VulnerabilidadesSegurança na NuvemDetecção de IntrusãoArchived
GitHubsnyk/leaky-vessels-dynamic-detector

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 →

leaky-vessels-dynamic-detector

Detector de runtime baseado em eBPF para vulnerabilidades de fuga de contêineres em runc e Docker, monitorando chamadas de syscall e do daemon do Docker para detectar a exploração de CVE-2024-21626, CVE-2024-23651, CVE-2024-23652 e CVE-2024-23653 durante builds e runtime.

Ver Repositório
10589há 1 anoAinda não revisado
Compartilhar

AVISO

Este repositório está agora arquivado.

Não serão feitas mais atualizações ao código e ele pode estar inseguro ou até mesmo quebrado quando você ler este aviso. Considere-o apenas para fins históricos e trate-o com cuidado.

Leaky Vessels Dynamic Detector

snyk-oss-category

Neste repositório você encontrará uma implementação de referência para detecção em tempo de execução baseada em eBPF para as vulnerabilidades do runc e Docker CVE-2024-21626, CVE-2024-23651, CVE-2024-23652 e CVE-2024-23653. Ela se conecta a syscalls do Linux (por exemplo, chdir, mount) e invocações de funções do daemon Docker e as associa a builds Docker e processos de contêineres para identificar explorações dessas vulnerabilidades. Para uma abordagem baseada em análise estática, consulte este.

runc process.cwd & Leaked fds Container Breakout [CVE-2024-21626]

CVE-2024-21626 é uma vulnerabilidade no runtime de contêineres runc que permite a um atacante escapar do isolamento do contêiner e obter RCE total como root por meio de uma imagem maliciosa que explora um problema no tratamento da instrução WORKDIR. Como existe uma condição de "corrida" entre o momento em que alguns descritores de arquivo para o host são abertos e fechados, um atacante pode criar um Dockerfile com a seguinte instrução WORKDIR /proc/self/fd/[ID] (com ID sendo um descritor de arquivo dependente do sistema) que apontará para o sistema de arquivos da máquina host subjacente. Isso pode ser explorado ao executar:

  1. docker build - Em 2 casos:
    • Quando o Dockerfile sendo construído contém a instrução que dispara a exploração.
    • Quando o Dockerfile sendo construído referencia uma imagem base por meio da instrução FROM que contém um comando ONBUILD que dispara a exploração, por exemplo, ONBUILD WORKDIR /proc/self/fd/[ID]. A instrução ONBUILD injeta o comando não na imagem que o contém, mas na imagem que o usa como imagem base. Isso significa que, se uma imagem base for comprometida ou intencionalmente maliciosa, ou seja, hospedada no Dockerhub ou em outros registros públicos de contêineres, a exploração é possível mesmo que nada mude na imagem que o comando docker build realmente constrói.
  2. docker run

Assim, esta vulnerabilidade pode colocar tanto sistemas de build quanto ambientes de produção em risco.

Buildkit Mount Cache Race: Build-time Race Condition Container Breakout [CVE-2024-23651]

CVE-2024-23651 é uma vulnerabilidade no Docker em que um comando RUN usa o sinalizador --mount=cache. Existe uma vulnerabilidade de tempo de verificação/tempo de uso (TOCTOU) entre a verificação de que um diretório source existe no host do daemon Docker e a chamada real ao syscall mount. Um atacante pode criar um Dockerfile que plantaria um symlink entre essas duas chamadas para induzir um bind mount arbitrário que resulta em RCE total como root no host. Esta vulnerabilidade afeta apenas o comando docker build.

Buildkit GRPC SecurityMode Privilege Check [CVE-2024-23653]

CVE-2024-23653 é uma vulnerabilidade no Docker que ocorre quando um gerador LLB personalizado do Buildkit é usado com a diretiva # syntax. O gerador pode usar as chamadas GRPC Client.NewContainer e Container.Start para executar um novo contêiner durante o build. O argumento StartRequest.SecurityMode não é verificado adequadamente em relação às expectativas de privilégio do daemon Docker ou da chamada docker build, o que permite ao chamador GRPC criar um contêiner privilegiado durante o build. Este novo contêiner privilegiado pode então ser escapado para obter RCE total como root no host de build. Esta vulnerabilidade afeta apenas o comando docker build.

Buildkit Build-time Container Teardown Arbitrary Delete [CVE-2024-23652]

CVE-2024-23652 é uma vulnerabilidade de exclusão arbitrária no Docker. Quando RUN --mount é usado em um Dockerfile, se o destino do mount não existir, ele será criado para aquele ambiente. Quando a execução é concluída, este diretório criado será limpo. Se o comando em execução alterar o caminho usado para o mount para um link simbólico, o procedimento de limpeza atravessará este link simbólico e potencialmente limpará diretórios arbitrários no sistema de arquivos raiz do host. Esta vulnerabilidade afeta apenas o comando docker build.

Instalação e uso

Detecção eBPF em tempo de build

A detecção em tempo de build se aplica a todas as 4 vulnerabilidades.

  1. Compile o binário do detector: GOOS=linux GOARCH={{amd64/arm64}} go build.
  2. Execute o binário compilado em segundo plano usando sudo (conforme exigido pelo eBPF) em seu ambiente de build (ou seja, sudo ebpf-detector &).
  3. Se uma exploração de uma das vulnerabilidades for detectada, você verá Leaky vessels vulnerability detected impresso em STDOUT, juntamente com o respectivo CVE, nome da vulnerabilidade e informações forenses adicionais.

Detecção eBPF em tempo de execução no Kubernetes

A detecção em tempo de execução se aplica apenas à vulnerabilidade WORKDIR (CVE-2024-21626).

  1. Construa a imagem de contêiner do detector usando o Dockerfile fornecido e envie-a para um registro de imagens.
  2. Preencha o valor image no detector.yaml (marcado com TODO).
  3. Execute o detector como um DaemonSet em seu cluster Kubernetes executando kubectl apply -f detector.yml.
  4. Se uma exploração da vulnerabilidade WORKDIR for detectada, você verá Leaky Vessels vulnerability detected impresso nos logs dos pods do DaemonSet.

Testes

Os testes unitários precisam ser executados com sudo, pois dependem de eBPF: sudo go test ebpf-detector/....

Limitações

  • Requer acesso root / execução de contêineres em modo privilegiado (exigido pelo eBPF).
  • A exploração WORKDIR em tempo de execução (CVE-2024-21626) ocorre durante a inicialização do contêiner, portanto não será detectada em contêineres em execução. A detecção também assume que o runtime de contêineres é containerd.
  • As detecções de Buildkit Mount Cache Race (CVE-2024-23651) e Buildkit Build-time Container Teardown Arbitrary Delete (CVE-2024-23652) são baseadas em temporização e podem ter falsos negativos devido a condições de corrida.
  • Testado nos seguintes ambientes:
    • Ubuntu 20.04/22.04 (AMD64)
    • GKE (Ubuntu e Alpine Linux, AMD64)
    • EKS (Ubuntu e Alpine Linux, AMD64) - suportado pela versão EKS >= 1.25
    • Ubuntu 22.04 (ARM64)

Problemas

Para uma lista atualizada de bugs e problemas, consulte os problemas do projeto.

Contribuindo

Contribuições são bem-vindas. Consulte CONTRIBUTING.md para detalhes.

Licença

O Leaky Vessels Dynamic Detector está sob a licença Apache-2.0. Consulte LICENSE para mais informações.

Baixar ferramenta