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

[!CAUTION] Этот проект намеренно уязвим. Запускайте его только локально. Не открывайте его порты в публичную или общую сеть. Никогда не используйте его в производственной среде.
[!NOTE] Этот репозиторий опубликован как образовательный справочный материал в режиме только для чтения. Он не принимает публичные issues, pull requests, запросы функций или запросы поддержки. О непреднамеренных нарушениях границ безопасности сообщайте приватно, как описано в SECURITY.md.
Пошаговый практикум, который обучает параметрам push, небезопасной сериализации, разбору с дублирующимися ключами, переопределению конфигурации и ограниченной цепочке выполнения. Уроки сочетают краткие объяснения с безопасными экспериментами против запущенной лаборатории.
Сценарий в стиле CTF с тремя последовательными карточками испытаний, необязательными подсказками и флагами, генерируемыми на бэкенде. Обычный интерфейс не раскрывает исходный код, трассировки, вывод сериализатора, вывод шлюза выполнения или пошаговое руководство.
git clone https://github.com/royaleybovich/CVE-2026-3854-lab.git
cd CVE-2026-3854-lab
docker compose up -d --build
Настройка флагов или учётных данных не требуется. Одноразовый инициализатор при первом запуске создаёт независимые, компактные, удобочитаемые проверочные значения и случайные учётные данные сервисов в приватном томе 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). Другие операционные системы и архитектуры CPU не считаются проверенными, пока не будут зафиксированы результаты их проверок на чистом клоне.
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, использует файловую систему только для чтения, не принимает shell-команды или управляемое вызывающей стороной окружение и может вызывать только точные исполняемые файлы proof, принадлежащие лаборатории. Эти меры ограничивают учебный процесс; они не делают его безопасным для публичного раскрытия.
Browser / Git client
↓
Flagship portal / ForgeDock
↓
Internal processing network
↓
Constrained executor
См. обзор системы, обработку push-опций, модель угроз и руководство по локальному развёртыванию.
ForgeDock — это намеренно упрощённая и безопасно ограниченная реконструкция публично задокументированных концепций уязвимости, лежащих в основе CVE-2026-3854. Она не воспроизводит проприетарную реализацию GitHub. Имена полей, границы сервисов и поведение при выполнении отличаются от фактических реализаций GitHub и GitHub Enterprise Server.
Намеренно уязвимое поведение было добавлено ниже по потоку для этой лаборатории и не является уязвимостью upstream Forgejo. ForgeDock — это не GitHub, и этот проект не связан с GitHub, Forgejo, Wiz или упомянутыми исследователями и не одобрен ими.
Эти благодарности описывают источники и зависимости; они не подразумевают сотрудничество, одобрение или поддержку.
Программное обеспечение и учебные материалы, созданные Flagship, лицензированы под GPL-3.0-or-later, если в файле не указана другая совместимая лицензия. См. LICENSE, NOTICE.md, происхождение Forgejo и TRADEMARKS.md. Существующие сторонние лицензии и уведомления остаются в силе.