
Изолированная лаборатория GitLab на базе Vagrant для авторизованного защитного тестирования и валидации CVE-2026-85706, с уязвимым и исправленным профилями, а также упражнениями для студентов.
Этот каталог создаёт изолированную локальную лабораторию GitLab для авторизованного защитного тестирования CVE-2026-85706. Уязвимость затрагивает ограничение пути и принудительную аутентификацию в API repository-commits GitLab CE/EE. Используется полноценный гостевой образ Ubuntu.
127.0.0.1:8443 на хосте
(настраивается через LAB_HTTPS_PORT) и использует
host-only адрес гостевой системы../scripts/teardown-vm.sh.curl, openssl и bashcd ~/gitlab-cve-lab
./scripts/setup-vm.sh
Скрипт установки создаёт виртуальную машину, устанавливает GitLab CE напрямую из
официального репозитория пакетов и ожидает готовности health-эндпоинта. Откройте лабораторию
по адресу https://127.0.0.1:8443 (браузер предупредит о локальном сертификате).
Используйте LAB_HTTPS_PORT и LAB_SSH_PORT, если порты по умолчанию недоступны.
Профиль по умолчанию — vulnerable, привязанный к GitLab CE 19.3.1-ce.0, который
входит в диапазон затронутых версий, опубликованный для CVE-2026-85706. Чтобы собрать
профиль с исправлением для сравнения, выполните:
LAB_PROFILE=patched ./scripts/setup-vm.sh
Профиль с исправлением использует GitLab CE 19.3.2-ce.0. Если репозиторий пакетов
больше не предлагает эту конкретную версию, задайте GITLAB_VERSION как предоставленную
вендором исправленную версию перед запуском установки.
./scripts/smoke-test-vm.sh
Smoke-тест проверяет работоспособность виртуальной машины, доступность портов только локально и то, что неаутентифицированный запрос к API repository-commits не рассматривается как аутентифицированная операция чтения файлов. Он намеренно не пытается получить произвольные файлы.
Для контролируемого аутентифицированного теста создайте одноразовый приватный проект в интерфейсе GitLab, добавьте тестовый коммит и используйте только пути в пределах этого проекта. Фиксируйте временные метки и коды состояния HTTP, а не содержимое конфиденциальных файлов.
./scripts/teardown-vm.sh
Эта команда выключает и уничтожает виртуальную машину, подключённый к ней диск и сгенерированный сертификат.
Этот проект доступен под лицензией MIT. Требования ответственного использования для уязвимой лаборатории описаны в лицензионном соглашении и политике безопасности.