
Exploits de prova de conceito de escape de contêiner para CVE-2026-80521 e CVE-2026-52910, com um harness de VM QEMU/Ubuntu descartável para execução segura de PoC.
Este diretório compila e executa um contêiner Docker Ubuntu dentro de um convidado QEMU Ubuntu descartável. Os PoCs são copiados para o convidado e nunca são executados pelos scripts do host.
qemu-imgcurlxorrisosocat apenas quando VM_PAYLOAD_CONSOLE=1 é usadoO KVM é usado quando disponível; caso contrário, o QEMU recorre ao TCG.
UBUNTU_VERSION=26.04 \
VM_EXPECTED_KERNEL=7.0.0-31-generic \
./vm/build_image.sh
O compilador baixa a imagem cloud da versão do Ubuntu selecionada, valida-a em relação ao SHA256SUMS publicado pela Ubuntu, instala atualizações de pacotes e o Docker, baixa a imagem de contêiner Ubuntu correspondente e grava vm/ubuntu-<version>.qcow2.
Os URLs predefinidos estão fixados às imagens de versão oficial mais recentes disponíveis em 16 de setembro de 2026:
2026091120260823Defina UBUNTU_RELEASE_URL, UBUNTU_IMAGE_URL ou UBUNTU_SUMS_URL para usar outra versão.
A imagem qcow2 gerada e a chave SSH são artefactos locais ignorados pelo Git. A chave privada mantém o modo 0600.
UBUNTU_VERSION=26.04 \
VM_EXPECTED_KERNEL=7.0.0-31-generic \
./vm/run_container.sh ./path/to/binary [arguments...]
Cada execução cria uma sobreposição qcow2 temporária, arranca o convidado, copia o binário via SSH e lança-o num contêiner novo com a rede desativada. Os argumentos, os fluxos padrão e o estado de saída são encaminhados.
Substituições úteis:
VM_CPUS=4 VM_MEMORY_MB=4096 ./vm/run_container.sh ./binary
VM_SSH_PORT=2223 ./vm/run_container.sh ./binary
KEEP_VM_RUN_DIR=1 ./vm/run_container.sh ./binary
KEEP_VM_RUN_DIR=1 mantém a sobreposição e os registos em /tmp/ubuntu-container.*. Cada invocação realiza um arranque de VM e uma tentativa de payload. Defina VM_PAYLOAD_CONSOLE=1 para um payload que use explicitamente a segunda porta serial do convidado.