edgecases-PurpleHax/cve-images
GitHub: edgecases-PurpleHax/cve-images
一套基于 Docker 的蓄意漏洞实验镜像集合,主要用于在隔离环境中复现和研究 nginx CVE 及常见 Web 应用漏洞。
Stars: 1 | Forks: 0
# cve-images — 蓄意制作的漏洞实验镜像
这是一个专为在独立实验环境中进行安全研究而收集的**蓄意制作的漏洞** Docker 镜像集合。它最初是作为 nginx CVE 复现开始的,现在正逐渐发展为一个更广泛的、按设计包含漏洞的镜像集合(例如 DVWA)。
## nginx CVE 镜像
所有镜像都建立在共享基础镜像之上,该镜像会**从源码编译 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 镜像)。
## 发布 (GitHub Actions → Docker Hub)
CI 会在每次 PR/push 时构建每个 `*-lab/` 镜像(仅构建,不推送),以便在合并前发现破坏性问题。发布操作由 git 标签驱动:
| 标签格式 | 构建并推送 | 应用的标签 |
|---|---|---|
| `v*` (例如 `v1.30.0-lab.2`) | 四个 nginx CVE 镜像 | `` + `:latest` |
| `dvwa-v*` (例如 `dvwa-v1`) | `dvwa_with_curl` | `` + `:latest` |
```
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`。
标签:Cutter, Nginx, OPA, 漏洞复现, 请求拦截, 靶场