
Laboratório GitLab isolado baseado em Vagrant para testes defensivos autorizados e validação do CVE-2026-85706, com perfis vulnerável e corrigido, além de exercícios para alunos.
Este diretório cria um laboratório GitLab isolado e exclusivamente local para testes defensivos autorizados do CVE-2026-85706. O CVE afeta o confinamento de caminho e a aplicação de autenticação da API repository-commits do GitLab CE/EE. Ele usa um guest Ubuntu completo.
127.0.0.1:8443 no host por padrão (personalizável com LAB_HTTPS_PORT) e usa um endereço de guest host-only../scripts/teardown-vm.sh.curl, e opensslbashcd ~/gitlab-cve-lab
./scripts/setup-vm.sh
O script de configuração cria uma VM, instala o GitLab CE diretamente do repositório oficial de pacotes e aguarda o endpoint de integridade. Abra o laboratório em https://127.0.0.1:8443 (o navegador avisará sobre o certificado local). Use LAB_HTTPS_PORT e LAB_SSH_PORT quando os padrões não estiverem disponíveis.
O perfil padrão é vulnerable, fixado no GitLab CE 19.3.1-ce.0, que está no intervalo afetado publicado para o CVE-2026-85706. Para compilar o perfil de comparação corrigido, execute:
LAB_PROFILE=patched ./scripts/setup-vm.sh
O perfil corrigido usa o GitLab CE 19.3.2-ce.0. Se o repositório de pacotes não oferecer mais essa versão exata, defina GITLAB_VERSION para uma versão corrigida fornecida pelo fornecedor antes de executar a configuração.
./scripts/smoke-test-vm.sh
O smoke test verifica a integridade da VM, a acessibilidade da porta apenas local e que uma requisição não autenticada à API repository-commits não seja tratada como uma operação autenticada de leitura de arquivo. Ele intencionalmente não tenta recuperar arquivos arbitrários.
Para um teste autenticado controlado, crie um projeto privado descartável na interface do GitLab, adicione um commit de teste e use apenas caminhos dentro desse projeto. Registre timestamps e códigos de status HTTP, não conteúdos de arquivos sensíveis.
./scripts/teardown-vm.sh
Isso desliga e destrói a VM, seu disco anexado e seu certificado gerado.
Este projeto está disponível sob a Licença MIT. Os requisitos de uso responsável para o laboratório vulnerável estão documentados no contrato de licença e na política de segurança.