Injection SQL non authentifiée CVSS 9.8 dans Drupal Core sur PostgreSQL, activement exploitée et inscrite au CISA KEV le 22 mai 2026. Patch obligatoire immédiat.
En bref
- CVE-2026-9082 — Injection SQL non authentifiée (CVSS 9.8 Critique) dans Drupal Core sur PostgreSQL, exploitée activement depuis le 22 mai 2026
- Drupal 10.4.x–11.3.x avec backend PostgreSQL ; MySQL, MariaDB et SQLite non affectés
- Action urgente : mettre à jour vers Drupal 10.4.10, 10.5.10, 10.6.9, 11.1.10, 11.2.12 ou 11.3.10 — ajouté au CISA KEV le 22 mai 2026
Les faits
Le 20 mai 2026, l'équipe de sécurité Drupal a publié l'avis SA-CORE-2026-004 accompagné d'une mise à jour d'urgence qualifiée "Highly Critical" (score Drupal : 20/25). La vulnérabilité CVE-2026-9082 est une injection SQL non authentifiée résidant dans le gestionnaire de conditions EntityQuery du pilote PostgreSQL de Drupal Core. Le score CVSSv3.1 atteint 9.8 Critique, avec vecteur CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H : aucune authentification requise, aucune interaction utilisateur, exploitation réseau directe.
La faille touche exclusivement les installations Drupal utilisant PostgreSQL comme base de données — environ 4 à 5 % des quelque 1,3 million de sites Drupal en production, soit potentiellement 60 000 à 70 000 instances vulnérables. Les bases MySQL, MariaDB et SQLite ne sont pas concernées en raison de différences dans le traitement des clés de tableaux PHP par chaque pilote SQL.
Cause profonde (root cause) : Lorsque l'API de base de données de Drupal construit des requêtes EntityQuery via des filtres, elle génère des noms de variables d'espacement (placeholder names) en concaténant un préfixe de champ avec les clés de tableaux PHP fournis par l'utilisateur. Le pilote MySQL utilise exclusivement des tableaux à index entiers séquentiels, rendant cette opération sûre. Le pilote PostgreSQL, lui, accepte les tableaux associatifs — et les clés contrôlées par l'attaquant atteignent la phase de construction SQL sans aucune désinfection, avant que PDO ne les lie à des paramètres sécurisés.
Variante 1 — Endpoint JSON de connexion (blind booléen) : L'attaquant envoie une requête POST non authentifiée vers /user/login?_format=json avec un corps JSON contenant un objet associatif plutôt qu'un scalaire. L'objet JSON est désérialisé en tableau associatif PHP, et la clé contrôlée par l'attaquant est injectée directement dans le nom du placeholder avant l'exécution PDO. En exploitant l'opérateur de concaténation PostgreSQL || combiné à une logique de division par zéro, l'attaquant extrait des données bit par bit via un oracle booléen : HTTP 500 lorsque le prédicat injecté est vrai, HTTP 400 lorsqu'il est faux.
Variante 2 — Filtres JSON:API (error-based) : Le module JSON:API de Drupal accepte des filtres de requête hiérarchiques via des paramètres URL de la forme filter[t][condition][value][]=x. L'expansion des crochets convertit ces paramètres en tableaux PHP imbriqués. L'injection de caractères spéciaux dans les clés de tableaux déclenche des erreurs PostgreSQL SQLSTATE[HY093] (paramètre invalide) tout en retournant HTTP 200 sur les installations patchées, fournissant un oracle d'extraction fiable.
Escalade vers RCE via COPY TO PROGRAM : Sur les déploiements PostgreSQL où l'utilisateur de base de données dispose de privilèges SUPERUSER (fréquent dans les installations auto-hébergées), l'injection SQL peut être chaînée avec la commande native PostgreSQL COPY (SELECT '') TO PROGRAM 'commande_shell' pour exécuter du code arbitraire au niveau du système d'exploitation sous l'identité du processus PostgreSQL. L'attaquant peut ensuite déposer un webshell PHP dans sites/default/files/ et obtenir une persistance complète sur le serveur.
Réponse du vendeur et adoption par les attaquants : Drupal avait initialement classé le risque comme "Théorique" le 21 mai 2026 ; il a mis à jour cette évaluation vers "Activement Exploité" dès le 22 mai, moins de 48 heures après la publication du patch. La CISA a ajouté CVE-2026-9082 au catalogue KEV (Known Exploited Vulnerabilities) le même jour, imposant aux agences fédérales américaines une remédiation avant le 27 mai 2026. La télémétrie d'Imperva a détecté plus de 15 000 tentatives d'attaque contre près de 6 000 sites Drupal distincts dans 65 pays en l'espace de quelques jours. Les secteurs les plus ciblés sont les jeux en ligne et les services financiers (environ 50 % des attaques observées). Un outil de scan public est disponible sur GitHub sous la référence ridhinva/CVE-2026-9082.
Le correctif publié par Drupal consiste à appliquer array_values() à trois emplacements distincts dans le pilote PostgreSQL, réinitialisant toutes les clés influencées par l'attaquant en entiers séquentiels avant qu'elles n'atteignent la génération SQL. Des correctifs "best-effort" pour les branches EOL Drupal 9.5.x et 8.9.x ont également été mis à disposition, selon l'avis SA-CORE-2026-004.
L'écart entre le score NVD de 6.5 initialement attribué et le score Drupal de 20/25 "Highly Critical" (équivalent à CVSS 9.8 selon les critères Drupal) illustre une limite connue du processus NVD : la sous-estimation du vecteur d'escalade vers RCE via les fonctionnalités natives de PostgreSQL. Les équipes de sécurité doivent se référer à l'avis SA-CORE-2026-004 et au statut CISA KEV comme indicateurs primaires de sévérité.
Impact et exposition
Tout site Drupal en production sur PostgreSQL, qu'il soit public ou interne, est directement exposé sans aucune condition d'authentification. L'attaque se déclenche par une simple requête HTTP vers des endpoints standard présents sur toute installation Drupal moderne (/user/login et les routes JSON:API). Les portails gouvernementaux, les plateformes universitaires, les intranets de services financiers et les sites médias utilisant Drupal comme CMS sont des cibles prioritaires.
La surface d'attaque est amplifiée par le fait que l'injection booléenne aveugle permet l'extraction de la table users de Drupal — incluant les noms d'utilisateurs, les hachages bcrypt des mots de passe et les jetons de session actifs — sans qu'aucune trace d'écriture n'apparaisse dans les journaux d'accès habituels. Sur les bases PostgreSQL avec SUPERUSER, le pivot vers l'OS est automatisable en une seule requête supplémentaire.
Les installations hébergées sur des PaaS ou des clusters Kubernetes partagés présentent un risque de mouvement latéral supplémentaire : une RCE via COPY TO PROGRAM dans le contexte du conteneur PostgreSQL peut permettre d'atteindre d'autres services co-hébergés si les politiques de réseau ne sont pas correctement isolées.
Selon Tenable et Qualys ThreatPROTECT, les premières vagues d'exploitation observées ciblent principalement les endpoints JSON:API des sites sans WAF, en utilisant des outils de scan automatisés capables de détecter la vulnérabilité en quelques secondes. La vitesse de propagation des scans automatisés rend illusoire une fenêtre de remédiation supérieure à 24 heures pour les instances exposées sur internet.
Recommandations immédiates
- Mettre à jour immédiatement Drupal : 11.3.10, 11.2.12, 11.1.10, 10.6.9, 10.5.10, ou 10.4.10 selon la branche — advisory : Drupal Security Advisory SA-CORE-2026-004
- Si la mise à jour immédiate est impossible : désactiver temporairement le module JSON:API (drush pm:disable jsonapi) et restreindre les endpoints REST formatés
- Révoquer les privilèges SUPERUSER et CREATEDB de l'utilisateur de base de données Drupal pour bloquer l'escalade via COPY TO PROGRAM
- Activer des règles WAF ciblant les patterns d'injection de tableaux associatifs dans les requêtes JSON et JSON:API
- Auditer les journaux d'accès depuis le 20 mai 2026 pour détecter les patterns /user/login?_format=json avec des corps JSON malformés ou des erreurs HTTP 500 anormales
- Indicateurs de compromission : erreurs PostgreSQL SQLSTATE[HY093] dans les logs applicatifs, requêtes SQL contenant COPY TO PROGRAM, hachages utilisateurs Drupal modifiés, webshells dans sites/default/files/
⚠️ Urgence
CVE-2026-9082 est activement exploitée depuis le 22 mai 2026 et figure au catalogue CISA KEV. Plus de 15 000 attaques ont été détectées contre près de 6 000 sites en quelques jours. Toute instance Drupal sur PostgreSQL doit être patchée en priorité absolue — le délai fédéral CISA était fixé au 27 mai 2026.
Comment savoir si je suis vulnérable ?
Vérifiez la version de Drupal avec la commande drush status | grep -i version ou dans le tableau de bord Admin > Rapports > Informations système. Si la version est comprise entre 10.4.0 et 11.3.9, et que votre base de données est PostgreSQL (drush sql:cli -- SELECT version(); doit retourner "PostgreSQL"), vous êtes vulnérable. Vérifiez également si le module JSON:API est activé : drush pm:list --status=enabled | grep jsonapi. Si les deux conditions sont réunies, appliquez le patch immédiatement.
Votre infrastructure est-elle exposée ?
Ayi NEDJIMI réalise des audits ciblés pour identifier et corriger vos vulnérabilités.
Demander un auditÀ propos de l'auteur
Ayi NEDJIMI
Auditeur Senior Cybersécurité & Consultant IA
Expert Judiciaire — Cour d'Appel de Paris
Habilitation Confidentiel Défense
ayi@ayinedjimi-consultants.fr
Ayi NEDJIMI est un vétéran de la cybersécurité avec plus de 25 ans d'expérience sur des missions critiques. Ancien développeur Microsoft à Redmond sur le module GINA (Windows NT4) et co-auteur de la version française du guide de sécurité Windows NT4 pour la NSA.
À la tête d'Ayi NEDJIMI Consultants, il réalise des audits Lead Auditor ISO 42001 et ISO 27001, des pentests d'infrastructures critiques, du forensics et des missions de conformité NIS2 / AI Act.
Conférencier international (Europe & US), il a formé plus de 10 000 professionnels.
Domaines d'expertise
Ressources & Outils de l'auteur
Testez vos connaissances
Mini-quiz de certification lié à cet article — propulsé par CertifExpress
Articles connexes
CVE-2026-44277 : RCE non-auth FortiAuthenticator CVSS 9.8 (FG-IR-26-128)
CVE-2026-44277 : RCE non authentifiée CVSS 9.8 dans Fortinet FortiAuthenticator 6.4–8.0. Contrôle d'accès manquant sur l'API REST d'administration. Patch urgent FG-IR-26-128.
Gogs 0-day RCE non patchée : injection argument Git, Metasploit dispo
Vulnérabilité 0-day CVSSv4 9.4 dans Gogs : injection d'argument Git menant à une RCE, module Metasploit public, aucun patch après 70 jours de signalement.
CERTFR-2026-ALS-006 : RCE critique Stormshield SNS pré-auth (CVSS 9.1)
Le CERT-FR a publié l'alerte CERTFR-2026-ALS-006 le 26 mai 2026 concernant une exécution de code à distance sans authentification (CVSS 9.1) dans Stormshield Network Security. Patch immédiat requis pour les OIV et entités NIS2.
Un projet cybersécurité ? Parlons-en.
Pentest, conformité NIS 2, ISO 27001, audit IA, RSSI externalisé… nos experts répondent sous 24h pour évaluer votre besoin.
Commentaires
Aucun commentaire pour le moment. Soyez le premier à commenter !
Laisser un commentaire