一个本地学习实验室和研究实验室,灵感来自 CVE-2026-3854 背后公开记录的漏洞概念。这两种体验都会对 ForgeDock(一个虚构的 Git 服务器)执行真实的经过身份验证的 Git 推送;即研究实验室。

[!CAUTION] 本项目故意包含漏洞。仅限本地运行。请勿将其端口暴露到公共或共享网络。切勿在生产环境中使用。
[!NOTE] 本仓库以只读教育参考资料的形式发布。不接受公开的 issue、拉取请求、功能请求或支持请求。请按照 SECURITY.md 中的说明私下报告意外的安全边界缺陷。
一个引导式工作坊,教授推送选项、不安全的序列化、重复键解析、配置覆盖以及受限的执行链。课程将简短讲解与针对运行中实验室的安全实验相结合。
一种 CTF 风格的体验,包含三张顺序排列的挑战卡片、可选提示和后端生成的 flag。正常 UI 不暴露源码、跟踪信息、序列化器输出、执行门输出或引导式演练。
git clone https://github.com/royaleybovich/CVE-2026-3854-lab.git
cd CVE-2026-3854-lab
docker compose up -d --build
无需设置 flag 或凭据。首次启动时,一次性初始化器会在私有 Docker 卷中创建独立的随机证明值和服务凭据。make up 是等效的便捷命令。只有在需要覆盖默认值或在 Docker 之外保留显式值时,才需要可选的 .env。
| 服务 | 本地 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 卷,包括实验室仓库、运行时进度、证明值和内部凭据。下次启动时会自动生成全新的私有值。
已发布的端口绑定到 127.0.0.1。Redis、Hook 执行器和内部处理服务不会对外发布。执行器没有 Docker socket 或主机文件系统挂载,会丢弃 Linux capabilities,使用只读文件系统,不接受任何 shell 命令或调用方控制的环境,并且只能调用实验室专属的精确证明可执行文件。这些控制措施限制了练习范围,但并不能使其可以安全地公开暴露。
Browser / Git client
↓
Flagship portal / ForgeDock
↓
Internal processing network
↓
Constrained executor
ForgeDock 是对 CVE-2026-3854 背后公开记录的漏洞概念进行的有意简化和安全受限的重构。它不复制 GitHub 的专有实现。字段名称、服务边界和执行行为与实际 GitHub 和 GitHub Enterprise Server 的实现有所不同。
这种故意包含漏洞的行为是为本实验室在下游添加的,并非上游 Forgejo 的漏洞。ForgeDock 不是 GitHub,本项目与 GitHub、Forgejo、Wiz 或所引用的研究人员无任何关联,也未获得其认可。
这些致谢仅说明来源和依赖关系,不表示合作、认可或背书。
Flagship 创建的软件和课程内容依据 GPL-3.0-or-later 许可,除非某个文件声明了其他兼容许可证。请参阅 LICENSE、NOTICE.md、Forgejo 来源说明和 TRADEMARKS.md。现有的第三方许可证和声明仍然有效。