
Lab local intencionalmente vulnerável com um workshop guiado e desafios CTF para praticar RCE via push-option do Git, desserialização insegura, parsing de chaves duplicadas e sobreposições de configuração contra um servidor Git em Docker.
Um Learning Lab e um Research Lab locais inspirados nos conceitos de vulnerabilidade documentados publicamente por trás do CVE-2026-3854. Ambas as experiências usam pushes Git autenticados reais contra o ForgeDock, um servidor Git fictício; o Research Lab.

[!CAUTION] Este projeto é intencionalmente vulnerável. Execute-o apenas localmente. Não exponha suas portas a uma rede pública ou compartilhada. Nunca o use em produção.
[!NOTE] Este repositório é publicado como uma referência educacional somente leitura. Ele não aceita issues públicas, pull requests, pedidos de funcionalidade ou solicitações de suporte. Relate falhas não intencionais no limite de segurança de forma privada, conforme descrito em SECURITY.md.
Um workshop guiado que ensina opções de push, serialização insegura, análise de chaves duplicadas, substituição de configuração e a cadeia de execução restrita. As lições combinam explicações curtas com experimentos seguros contra o lab em execução.
Uma experiência no estilo CTF com três cards de Challenge sequenciais, dicas opcionais e flags geradas pelo backend. A UI normal não expõe código-fonte, rastros, saída do serializador, saída do gate de execução ou um passo a passo guiado.
git clone https://github.com/royaleybovich/CVE-2026-3854-lab.git
cd CVE-2026-3854-lab
docker compose up -d --build
Nenhuma configuração de flag ou credencial é necessária. Um inicializador único (one-shot) cria valores de prova aleatórios independentes e credenciais de serviço em um volume Docker privado na primeira inicialização. make up é um comando de conveniência equivalente. Um .env opcional é necessário apenas para sobrescrever padrões ou manter valores explícitos fora do Docker.
| Serviço | URL local |
|---|---|
| Flagship | http://localhost:8080 |
| ForgeDock | http://localhost:3000 |
| Web Terminal | http://localhost:7681 |
A conta descartável do lab é:
Username: devuser
Password: devpass
Essas credenciais públicas existem apenas dentro do lab local e descartável. Não as reutilize em outros lugares.
docker compose)A validação de prontidão para release é verificada no Apple Silicon (arm64). Outros sistemas operacionais e arquiteturas de CPU não são declarados como verificados até que suas verificações de clone limpo sejam registradas.
make up # build and start; private lab state is generated automatically
make logs # follow service logs
make reset # delete lab repositories/progress and rebuild
make down # stop the lab without deleting Docker volumes
make test # run unit and live integration tests
make reset exclui volumes Docker, incluindo repositórios do lab, progresso em tempo de execução, valores de prova e credenciais internas. O próximo início gera novos valores privados automaticamente.
As portas publicadas fazem bind em 127.0.0.1. Redis, o executor de hooks e os serviços de processamento interno não são publicados. O executor não tem socket Docker nem mount do filesystem do host, remove as capacidades Linux, usa um filesystem somente leitura, não aceita nenhum comando de shell nem ambiente controlado pelo chamador, e pode invocar apenas executáveis de prova exatos pertencentes ao lab. Esses controles restringem o exercício; eles não o tornam seguro para exposição pública.
Browser / Git client
↓
Flagship portal / ForgeDock
↓
Internal processing network
↓
Constrained executor
Consulte a visão geral do sistema, o processamento de opções de push, o modelo de ameaças e o guia de implantação local.
ForgeDock é uma reconstrução deliberadamente simplificada e seguramente restrita dos conceitos de vulnerabilidade documentados publicamente por trás do CVE-2026-3854. Ele não reproduz a implementação proprietária do GitHub. Nomes de campos, limites de serviço e comportamento de execução diferem das implementações reais do GitHub e do GitHub Enterprise Server.
O comportamento intencionalmente vulnerável foi adicionado a jusante para este lab e não é uma vulnerabilidade upstream do Forgejo. ForgeDock não é o GitHub, e este projeto não é afiliado ao GitHub, Forgejo, Wiz ou aos pesquisadores citados, nem endossado por eles.
Estes créditos descrevem fontes e dependências; eles não implicam colaboração, aprovação ou endosso.
O software e o currículo criados pela Flagship são licenciados sob GPL-3.0-or-later, exceto quando um arquivo declara outra licença compatível. Consulte LICENSE, NOTICE.md, a proveniência do Forgejo e TRADEMARKS.md. Licenças e avisos de terceiros existentes permanecem em vigor.