Laboratorio local intencionalmente vulnerable con un taller guiado y desafíos CTF para practicar RCE en opciones de push de Git, deserialización insegura, parseo de claves duplicadas y sobrescritura de configuración contra un servidor Git dockerizado.
Un Learning Lab y Research Lab local inspirados en los conceptos de vulnerabilidad documentados públicamente detrás de CVE-2026-3854. Ambas experiencias usan pushes de Git autenticados reales contra ForgeDock, un servidor Git ficticio; el Research Lab.

[!CAUTION] Este proyecto es intencionalmente vulnerable. Ejecútalo solo localmente. No expongas sus puertos a una red pública o compartida. Nunca lo uses en producción.
[!NOTE] Este repositorio se publica como referencia educativa de solo lectura. No acepta issues públicos, pull requests, solicitudes de funciones ni solicitudes de soporte. Informa de fallos no intencionados en los límites de seguridad de forma privada como se describe en SECURITY.md.
Un taller guiado que enseña opciones de push, serialización insegura, análisis de claves duplicadas, anulación de configuración y la cadena de ejecución restringida. Las lecciones combinan explicaciones breves con experimentos seguros contra el laboratorio en ejecución.
Una experiencia de estilo CTF con tres tarjetas de desafío secuenciales, pistas opcionales y flags generados por el backend. La interfaz normal no expone el código fuente, los trazados, la salida del serializador, la salida de la puerta de ejecución ni una visita guiada.
git clone https://github.com/royaleybovich/CVE-2026-3854-lab.git
cd CVE-2026-3854-lab
docker compose up -d --build
No se requiere configuración de flags ni credenciales. Un inicializador de un solo uso crea valores de prueba aleatorios independientes y credenciales de servicio en un volumen privado de Docker en el primer arranque. make up es un comando de conveniencia equivalente. Un .env opcional solo es necesario para sobrescribir los valores predeterminados o mantener valores explícitos fuera de Docker.
| Servicio | URL local |
|---|---|
| Flagship | http://localhost:8080 |
| ForgeDock | http://localhost:3000 |
| Web Terminal | http://localhost:7681 |
La cuenta desechable del laboratorio es:
Username: devuser
Password: devpass
Estas credenciales públicas existen solo dentro del laboratorio local desechable. No las reutilices en otro lugar.
docker compose)La prueba de preparación para el lanzamiento se verifica en Apple Silicon (arm64). Otros sistemas operativos y arquitecturas de CPU no se declaran verificados hasta que se registren sus comprobaciones de clonación limpia.
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 elimina los volúmenes de Docker, incluidos los repositorios del laboratorio, el progreso en tiempo de ejecución, los valores de prueba y las credenciales internas. El siguiente arranque genera automáticamente nuevos valores privados.
Los puertos publicados se vinculan a 127.0.0.1. Redis, el ejecutor de hooks y los servicios de procesamiento interno no se publican. El ejecutor no tiene socket de Docker ni montaje del sistema de archivos del host, elimina las capacidades de Linux, usa un sistema de archivos de solo lectura, no acepta comandos de shell ni entornos controlados por el llamador, y solo puede invocar ejecutables de prueba exactos propiedad del laboratorio. Estos controles restringen el ejercicio; no lo hacen seguro para exponerlo públicamente.
Browser / Git client
↓
Flagship portal / ForgeDock
↓
Internal processing network
↓
Constrained executor
Consulta la descripción general del sistema, el procesamiento de opciones de push, el modelo de amenazas y la guía de despliegue local.
ForgeDock es una reconstrucción deliberadamente simplificada y restringida de forma segura de los conceptos de vulnerabilidad documentados públicamente detrás de CVE-2026-3854. No reproduce la implementación propietaria de GitHub. Los nombres de campos, los límites de servicios y el comportamiento de ejecución difieren de las implementaciones reales de GitHub y GitHub Enterprise Server.
El comportamiento intencionalmente vulnerable se añadió aguas abajo para este laboratorio y no es una vulnerabilidad de Forgejo aguas arriba. ForgeDock no es GitHub, y este proyecto no está afiliado ni respaldado por GitHub, Forgejo, Wiz ni los investigadores citados.
Estos créditos describen fuentes y dependencias; no implican colaboración, aprobación ni respaldo.
El software y el plan de estudios creados por Flagship están licenciados bajo GPL-3.0-or-later, excepto donde un archivo indique otra licencia compatible. Consulta LICENSE, NOTICE.md, la procedencia de Forgejo y TRADEMARKS.md. Las licencias y avisos de terceros existentes siguen vigentes.