
CVE-2026-85706の許可された防御的テストと検証のための、Vagrantベースの分離されたGitLabラボ。脆弱なプロファイルと修正済みプロファイル、および学生向け演習を備えています。
このディレクトリは、CVE-2026-85706 の許可された防御的テストのための、分離されたローカルのみの GitLab ラボを構築します。この CVE は GitLab CE/EE の repository-commits API のパス制限と認証の強制に影響します。完全な Ubuntu ゲストを使用します。
127.0.0.1:8443 にのみ転送し(LAB_HTTPS_PORT でカスタマイズ可能)、ホストオンリーのゲストアドレスを使用します。./scripts/teardown-vm.sh でラボを破棄してください。curl、openssl、および bashcd ~/gitlab-cve-lab
./scripts/setup-vm.sh
セットアップスクリプトは VM を作成し、公式パッケージリポジトリから GitLab CE を直接インストールし、ヘルスエンドポイントを待機します。ラボは 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
スモークテストは、VM のヘルス、ローカルのみのポート到達性、および repository-commits API への未認証リクエストが認証済みのファイル読み取り操作として扱われないことを検証します。任意のファイルを取得しようとは意図的に試みません。
制御された認証済みテストを行うには、GitLab UI で使い捨てのプライベートプロジェクトを作成し、テストコミットを追加し、そのプロジェクト内のパスのみを使用してください。機密のファイル内容ではなく、タイムスタンプと HTTP ステータスコードを記録してください。
./scripts/teardown-vm.sh
これは VM、その接続ディスク、および生成された証明書を電源オフにして破棄します。
このプロジェクトは MIT License の下で利用可能です。脆弱なラボの責任ある使用要件は、ライセンス契約 および セキュリティポリシー に文書化されています。