
CVE-2025-13780、pgAdmin 4 バージョン 8.14 以下におけるリモートコード実行(RCE)脆弱性のための包括的な脆弱性スキャナ。
CVE-2025-13780 用の包括的な脆弱性スキャナーです。これは pgAdmin 4 バージョン ≤ 8.14 におけるリモートコード実行 (RCE) 脆弱性です。
この脆弱性は pgAdmin 4 の 復元 (Restore) 機能に存在します。アプリケーションは正規表現を用いて危険なシェルコマンド(\ で始まるもの)をブロックしようとします。しかし、このチェックは回避可能です。
(^|\n)[ \t]*\\\xef\xbb\xbf を先頭に付加すると正規表現が一致しなくなる\n の代わりに \n\r を使用する# リポジトリのクローン
git clone https://github.com/ThemeHackers/CVE-2025-13780.git
cd CVE-2025-13780
# 依存関係のインストール
pip install -r requirements.txt
requests - API リクエスト用 HTTP ライブラリrich (オプション) - 色付きターミナル出力とプログレスバーpython-socketio & websocket-client (オプション) - エクスプロイトモード用 WebSocket サポート# 基本スキャン
python3 scanner.py http://localhost:5050
# 認証あり
python3 scanner.py http://localhost:5050 --email [email protected] --password admin
# 詳細モード
python3 scanner.py http://localhost:5050 -v
# ファイルからスキャン
python3 scanner.py -f targets.txt
# マルチスレッド (デフォルト: 5 スレッド)
python3 scanner.py -f targets.txt --threads 10
# 結果を JSON にエクスポート
python3 scanner.py -f targets.txt -o results.json --json
スキャナーは複数の要素に基づいて確信度スコア (0~100) を計算します:
バージョン ≤ 8.14 の場合:
バージョン > 8.14 の場合:
バージョンが不明の場合:
Docker Compose を使用して脆弱な pgAdmin 4 インスタンスをセットアップ:
docker-compose up -d
[email protected]admin| コード | 意味 |
|---|---|
| 0 | 脆弱性は見つかりませんでした |
| 1 | 1つ以上の脆弱なターゲットが見つかりました |
| 2 | スキャンエラーが発生しました |
╔═══════════════════════════════════════════════════════════════╗
║ CVE-2025-13780 pgAdmin 4 Scanner ║
║ Regex Bypass Remote Code Execution ║
║ ║
║ Affected: pgAdmin 4 <= 8.14 ║
╚═══════════════════════════════════════════════════════════════╝
[*] Checking connectivity to http://localhost:5050
[+] Target appears to be pgAdmin
[+] Detected version: 8.14
[+] CSRF token obtained
[!] Version 8.14 is in vulnerable range (<= 8.14)
[*] Testing regex bypass patterns
[+] BOM bypass: BYPASSED
[+] CRLF bypass: BYPASSED
⚠️ VULNERABILITY DETECTED ⚠️
このツールは教育目的および許可されたセキュリティテスト目的のみで提供されます。
このプロジェクトは MIT ライセンスの下で提供されています。詳細は LICENSE ファイルを参照してください。
| Option | 説明 |
|---|
target | ターゲット URL (例: http://localhost:5050) |
-f, --file | ターゲット一覧が記述されたファイル (1行1ターゲット) |
-e, --email | 認証用 pgAdmin メールアドレス |
-p, --password | 認証用 pgAdmin パスワード |
-o, --output | 結果出力ファイル |
--json | 結果を JSON 形式で出力 |
-q, --quiet | バナーや情報メッセージを抑制 |
-v, --verbose | 詳細/デバッグ出力を有効化 |
-t, --timeout | リクエストタイムアウト (秒) (デフォルト: 10) |
--threads | マルチターゲットスキャンのスレッド数 (デフォルト: 5) |
--exploit-demo | エクスプロイトデモモードを実行 |
--exploit | 実際のエクスプロイトを実行 (--lhost 必須) |
--lhost | リバースシェルコールバック用攻撃者 IP |
--lport | リバースシェル用攻撃者ポート (デフォルト: 4444) |
--cmd | 実行するカスタムコマンド (オプション) |
| 要素 | 最大ポイント | 詳細 |
|---|
| バージョンが脆弱範囲内 (≤ 8.14) | 40 | 検出されたバージョンが ≤ 8.14 |
| バージョン不明 | 15 | バージョンを特定できない場合 |
| Restore エンドポイントにアクセス可能 | 25 | 認証なしで Restore API にアクセス可能 |
| Restore エンドポイント (認証必須) | 15 | Restore API は存在するが認証が必要 |
| BOM と CRLF の両方のバイパスが成功 | 25 | 両方の正規表現バイパス方法が成功 |
| いずれかのバイパス方法が成功 | 20 | BOM または CRLF のバイパスが成功 |
| Browser エンドポイントにアクセス可能 | 10 | メインの pgAdmin インターフェースにアクセス可能 |