
CVE-2025-9074 の Proof-of-Concept エクスプロイト - 認証なしの Docker API 公開により、任意のコンテナ作成とホストファイルシステムへのアクセスが可能になります。
このリポジトリは、TCP ポート 2375 における Docker Engine API の未認証公開に関するCVE-2025-9074 の概念実証(PoC)エクスプロイトを提供します。
この公開された API にアクセスできる攻撃者は、以下のことが可能です:
この PoC は教育および認可されたセキュリティテスト目的のみで公開されています。
システムに対する不正な攻撃は違法であり、非倫理的です。
この PoC は、所有している環境、または明示的な許可を得てテストする環境でのみ使用してください。
2375requests ライブラリ依存関係をインストール:
pip install requests
この PoC をローカルマシンでテストする場合は、Docker API が TLS なしで TCP 上に公開されていることを確認してください。 Docker Desktop では、次の手順に従います:
⚠️ 警告: このオプションは Docker API の認証を無効にします。
localhost:2375 に到達できるローカルまたはリモートの攻撃者は、あなたの Docker デーモンを制御できます。
これは隔離されたテスト環境でのみ有効にしてください — 本番環境では絶対に有効にしないでください。
有効にすると、次のコマンドで確認できます:
curl http://127.0.0.1:2375/info
API が "ServerVersion" を含む JSON で応答した場合、デーモンは正しく公開されています。
# このリポジトリをクローン
git clone https://github.com/<your-username>/CVE-2025-9074-POC.git
cd CVE-2025-9074-POC
# PoC を実行
python3 poc_cve_2025_9074.py <target_ip>:2375
ターゲットが指定されていない場合、スクリプトは入力を求め、デフォルトで 127.0.0.1:2375 を使用します。
API の可用性を確認
Docker API が /info に応答するかどうかを確認します。
alpine イメージをプル
必要なベースイメージが利用可能であることを確認します。
悪意のあるコンテナペイロードを準備
ホストファイルシステムを /mnt にバインドマウントしたコンテナを作成します。
コンテナを作成 コンテナ作成リクエストを送信します。
コンテナを起動 コンテナが起動され、ホストファイルシステムへのアクセスが提供されます。
攻撃後処理 例:
docker exec -it <container_id> sh
ls /mnt
Expose daemon on tcp://localhost:2375 without TLS を無効にしてください。PoC スクリプトは、研究中に Gemini AI と共同開発されました。
この PoC は MIT License の下で公開されています。