
Локальная намеренно уязвимая лаборатория с пошаговым практикумом и CTF-заданиями для отработки RCE через push-опции Git, небезопасной десериализации, разбора дублирующихся ключей и переопределения конфигурации на развёрнутом в Docker Git-сервере.
Локальная Learning Lab и Research Lab, вдохновлённые публично задокументированными концепциями уязвимости, лежащими в основе CVE-2026-3854. Обе части используют реальные аутентифицированные push-операции Git против ForgeDock — вымышленного Git-сервера; Research Lab.

[!CAUTION] Этот проект намеренно уязвим. Запускайте его только локально. Не открывайте его порты в публичную или общую сеть. Никогда не используйте его в production.
[!NOTE] Этот репозиторий опубликован как учебный справочный материал только для чтения. Он не принимает публичные issue, pull request, запросы функций или запросы поддержки. О непреднамеренных нарушениях границ безопасности сообщайте приватно, как описано в SECURITY.md.
Практикум с руководством, который знакомит с push-опциями, небезопасной сериализацией, разбором дублирующихся ключей, переопределением конфигурации и ограниченной цепочкой выполнения. Уроки сочетают краткие пояснения с безопасными экспериментами на запущенной лаборатории.
Опыт в стиле CTF с тремя последовательными карточками Challenge, необязательными подсказками и флагами, генерируемыми на бэкенде. Обычный интерфейс не показывает исходный код, трассировки, вывод сериализатора, вывод шлюза исполнения или пошаговое руководство.
git clone https://github.com/royaleybovich/CVE-2026-3854-lab.git
cd CVE-2026-3854-lab
docker compose up -d --build
Никакой настройки флагов или учётных данных не требуется. Однократный инициализатор при первом запуске создаёт независимые случайные proof-значения и учётные данные сервисов в приватном томе Docker. make up — эквивалентная команда для удобства. Опциональный файл .env нужен только для переопределения значений по умолчанию или для хранения явных значений вне Docker.
| Сервис | Локальный URL |
|---|---|
| Flagship | http://localhost:8080 |
| ForgeDock | http://localhost:3000 |
| Web Terminal | http://localhost:7681 |
Учётная запись одноразовой лаборатории:
Username: devuser
Password: devpass
Эти публичные учётные данные существуют только внутри локальной одноразовой лаборатории. Не используйте их где-либо ещё.
docker compose)Этап проверки готовности к релизу подтверждён на Apple Silicon (arm64). Для других операционных систем и архитектур процессора статус проверки не заявляется, пока не зафиксированы результаты их проверок на чистом клоне.
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 удаляет тома Docker, включая репозитории лаборатории, состояние выполнения, proof-значения и внутренние учётные данные. При следующем запуске автоматически создаются новые приватные значения.
Опубликованные порты привязаны к 127.0.0.1. Redis, исполнитель хуков и внутренние сервисы обработки не публикуются. Исполнитель не имеет доступа к Docker-сокету и не монтирует файловую систему хоста, отбрасывает Linux capabilities, использует файловую систему только для чтения, не принимает shell-команд и управляемого вызывающей стороной окружения и может вызывать только точные proof-исполняемые файлы, принадлежащие лаборатории. Эти меры ограничивают упражнение; они не делают его безопасным для публичного доступа.
Browser / Git client
↓
Flagship portal / ForgeDock
↓
Internal processing network
↓
Constrained executor
ForgeDock — это намеренно упрощённая и безопасно ограниченная реконструкция публично задокументированных концепций уязвимости, лежащих в основе CVE-2026-3854. Она не воспроизводит проприетарную реализацию GitHub. Имена полей, границы сервисов и поведение при выполнении отличаются от реальных реализаций GitHub и GitHub Enterprise Server.
Намеренно уязвимое поведение было добавлено в downstream-версию специально для этой лаборатории и не является уязвимостью вышестоящего проекта Forgejo. ForgeDock — это не GitHub, и этот проект не связан с GitHub, Forgejo, Wiz или упомянутыми исследователями и не одобрен ими.
Эти упоминания описывают источники и зависимости; они не подразумевают сотрудничества, одобрения или поддержки.
Программное обеспечение и учебные материалы, созданные Flagship, лицензированы под GPL-3.0-or-later, за исключением файлов, в которых указана другая совместимая лицензия. См. LICENSE, NOTICE.md, происхождение Forgejo и TRADEMARKS.md. Существующие сторонние лицензии и уведомления остаются в силе.