一个用于在隔离实验室中进行安全研究的故意设计有漏洞的Docker镜像集合。最初是nginx CVE复现,现已扩展为更广泛的故意设计有漏洞的镜像集(例如DVWA)。
⚠️ 安全性
这些镜像是故意存在漏洞的。其中一个nginx CVE(CVE-2026-42945)正在被野外利用。**仅在隔离/本地网络上运行。切勿部署到公共主机,也切勿将它们当作生产镜像发布。**每个镜像都带有
lab.vulnerable=true标签及相应的说明。
所有镜像均构建于一个共享基础镜像之上,该镜像从源代码编译 nginx 1.30.0 —— 受这些CVE影响的最后一个版本(在1.30.1/1.31.0中修复)。
| 目录 | 镜像 | CVE | 模块/领域 |
|---|---|---|---|
base/ | rwils83/nginx-vuln-base:1.30.0 | — | 共享nginx 1.30.0源码构建 |
cve-2026-42945-rewrite-lab/ | rwils83/cve-2026-42945 | CVE-2026-42945 | rewrite模块堆溢出(RCE) |
cve-2026-42946-scgi-uwsgi-lab/ | rwils83/cve-2026-42946 | CVE-2026-42946 | scgi/uwsgi缓冲区越界读取 |
cve-2026-40701-resolver-lab/ | rwils83/cve-2026-40701 | CVE-2026-40701 | resolver释放后使用(OCSP) |
cve-2026-42934-charset-lab/ | rwils83/cve-2026-42934 | CVE-2026-42934 | charset模块缓冲区越界读取 |
| 目录 | 镜像 | 备注 |
|---|---|---|
dvwa-curl-lab/ | rwils83/dvwa_with_curl | 维护中的DVWA (ghcr.io/digininja/DVWA) + curl/python3 |
每个文件夹都有自己的 README.md,包含详细信息及参考。
必须先构建nginx基础镜像(CVE镜像 FROM 它):
docker build -t rwils83/nginx-vuln-base:1.30.0 ./base
docker build -t rwils83/cve-2026-42945:1.30.0 ./cve-2026-42945-rewrite-lab
docker build -t rwils83/cve-2026-42946:1.30.0 ./cve-2026-42946-scgi-uwsgi-lab
docker build -t rwils83/cve-2026-40701:1.30.0 ./cve-2026-40701-resolver-lab
docker build -t rwils83/cve-2026-42934:1.30.0 ./cve-2026-42934-charset-lab
docker build -t rwils83/dvwa_with_curl:latest ./dvwa-curl-lab
./build_all.sh 构建nginx集合(基础镜像 + 4个CVE镜像)。
CI在每个PR/push时构建所有 *-lab/ 镜像(仅构建,不推送)以在合并前发现破损。发布由git标签驱动:
git tag v1.30.0-lab.2 && git push --tags # release the nginx images
git tag dvwa-v1 && git push --tags # release DVWA
发布需要仓库密钥 DOCKERHUB_USERNAME 和 DOCKERHUB_TOKEN。
| 标签模式 | 构建并推送 | 应用的标签 |
|---|
v* (例如 v1.30.0-lab.2) | 四个nginx CVE镜像 | <version> + :latest |
dvwa-v* (例如 dvwa-v1) | dvwa_with_curl | <version> + :latest |