隔離されたラボでセキュリティ学習を行うための意図的に脆弱なDockerイメージのコレクションです。nginxのCVE再現から始まり、脆弱性設計イメージ(DVWAなど)のより広範なセットへと成長しています。
⚠️ 安全性
これらのイメージは意図的に脆弱です。nginxのCVEの1つ(CVE-2026-42945)は実際に悪用されています。**隔離された/ローカルネットワーク上でのみ実行してください。公開ホストへのデプロイは決して行わず、本番イメージとして公開しないでください。**各イメージには
lab.vulnerable=trueとその旨の説明が含まれています。
すべて、これらのCVEの影響を受ける最後のリリース(1.30.1 / 1.31.0で修正)であるnginx 1.30.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 の use-after-free (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/プッシュごとにすべての *-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) | 4つのnginx CVEイメージ | <version> + :latest |
dvwa-v* (例: dvwa-v1) | dvwa_with_curl | <version> + :latest |