本目录构建了一个隔离的、仅限本地的 GitLab 实验室,用于对 CVE-2026-85706 进行授权的防御性测试。该 CVE 影响 GitLab CE/EE 仓库提交 API 的路径限制和身份验证强制执行。它使用完整的 Ubuntu 客户机。
127.0.0.1:8443(可通过 LAB_HTTPS_PORT 自定义),并使用仅主机模式的客户机地址。./scripts/teardown-vm.sh 销毁实验室。curl、openssl 和 bashcd ~/gitlab-cve-lab
./scripts/setup-vm.sh
安装脚本会创建虚拟机,直接从官方软件包仓库安装 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
冒烟测试会验证虚拟机健康状况、仅本地端口可达性,以及对仓库提交 API 的未认证请求不会被当作已认证的文件读取操作处理。它有意不尝试检索任意文件。
对于受控的已认证测试,请在 GitLab UI 中创建一个一次性的私有项目,添加一个测试提交,并仅使用该项目内的路径。记录时间戳和 HTTP 状态码,而不是敏感文件内容。
./scripts/teardown-vm.sh
这会关闭并销毁虚拟机、其附加磁盘及其生成的证书。