SA-CORE-2026-004 : corriger Drupal version par version
Je reprends ici, sans dramatiser, le déroulé des faits, le périmètre exact des correctifs, la marche à suivre suivant la branche Drupal que vous exploitez, et les seuils PHP comme base de données à anticiper. Ce contenu vise les directions des systèmes d'information, responsables techniques et développeurs qui doivent trancher vite sur un ou plusieurs sites Drupal en ligne. J'actualise la page chaque fois qu'une nouvelle information officielle est publiée.
- Nature du défaut : injection SQL logée dans la couche Database abstraction API, et seuls les sites PostgreSQL y sont vulnérables.
- Cotation : 20/25 sur l'échelle Drupal Risk (Highly Critical), exploitable sans compte et avec une barrière d'accès très basse.
- Branches corrigées : 11.3.10, 11.2.12, 10.6.9, 10.5.10, plus des patches best-effort pour 11.1.10, 10.4.10, 9.5.11 et 8.9.20.
- Dépendances rafraîchies au passage : Twig 3.26.0, Symfony 6.4.40 / 7.4.12, Composer 2.9.8, Underscore.js 1.13.8 — ce qui touche l'intégralité des installations Drupal, peu importe le moteur de base.
- Drupal 7 hors du champ de cette faille, mais en fin de vie depuis le 5 janvier 2025, donc exposé à toutes les autres vulnérabilités sans correctif.
Anatomie de la vulnérabilité
Le défaut porte l'identifiant CVE-2026-9082 et relève de la classe CWE-89 (« Improper Neutralization of Special Elements used in an SQL Command »). Il loge dans la brique Database abstraction API du noyau, c'est-à-dire la couche par laquelle transitent toutes les requêtes SQL produites par les modules du cœur comme par les modules contribués.
Ce que dit la fiche officielle
- Catégorie : injection SQL (CWE-89)
- Brique concernée : Database abstraction API du cœur Drupal
- Moteur exposé : PostgreSQL exclusivement — MySQL, MariaDB et SQLite échappent à ce vecteur
- Note Drupal Risk : 20/25, soit le palier Highly Critical
- Détail du calcul : Access complexity = None, Authentication = None, Confidentiality impact = All non-public data, Integrity impact = All data modifiable
- Note CVSS 3.1 NVD : 6.5 (Medium). L'écart avec le 20/25 de Drupal vient de son barème maison, qui sanctionne bien plus lourdement l'absence d'authentification.
- Mode d'attaque : une simple requête HTTP forgée, sans compte ni réglage préalable
- Exploitation constatée au 21 mai 2026 : rien de public pour l'instant, mais la fenêtre la plus dangereuse couvre les jours qui suivent la divulgation
Pourquoi PostgreSQL et lui seul
Si Drupal mutualise une couche d'abstraction commune pour générer ses requêtes, chaque driver applique en réalité sa propre mécanique d'échappement et de préparation. Le problème naît d'un cas de figure précis : une séquence d'encodage que MySQL et SQLite désamorcent d'office, mais que PostgreSQL laisse passer. Sous les autres moteurs, le code fautif est bien présent, simplement il n'est pas activable par ce chemin. Tout site Drupal en production adossé à PostgreSQL passe donc en tête de liste des urgences.
D'où vient cette gravité
Le score de 20/25 résulte de trois ingrédients cumulés. Un : aucune authentification n'est requise, si bien que n'importe quel inconnu peut tenter sa chance depuis le web sans même s'inscrire. Deux : la barrière d'entrée est dérisoire — ni configuration particulière, ni privilège, ni enchaînement d'exploits sophistiqué. Trois : une injection SQL ouvre, en théorie, la lecture de l'ensemble des données non publiques (comptes, contenus protégés, configuration), leur altération (fabrication d'un administrateur, prise de contrôle), voire un rebond vers de l'exécution de code distant selon la base. La PSA le dit noir sur blanc : « exploits might be developed within hours or days ».
Au-delà de PostgreSQL : Twig, Symfony et Composer dans le lot
La livraison du 20 mai 2026 ne s'arrête pas au correctif d'injection SQL. Drupal en a profité pour embarquer une série de mises à niveau de composants tiers, plusieurs étant elles-mêmes classées critiques. Un site sous MySQL ou MariaDB n'est certes pas atteint par la SQLi PostgreSQL, mais il hérite des CVE de ces dépendances : il a donc lui aussi besoin du correctif.
Twig 3.26.0 (20 mai 2026)
- Contournement de sandbox par __toString : injection de code PHP critique sur les environnements multi-tenant
- XSS dans HtmlDumper, sur les sorties de débogage
- Filtres de sortie HTML marqués à tort is_safe (twig/extras)
- Échappement HTML contournable via le filtre spaceless
- Mémoïsation non bornée dans intl-extra, exploitable en déni de service
- Au total 13 advisories sorties d'un seul bloc sur GitHub, dont 2 critiques. Source : github.com/twigphp/Twig/security/advisories
Symfony 6.4.40 et 7.4.12 (20 mai 2026)
- 10 CVE divulguées le même jour : CVE-2026-45063, 45064, 45065, 45066, 45070, 45754, 45755, 45756, 46626 et 47212
- Au menu : injection d'URL, contournement d'HtmlSanitizer et divers défauts dans HttpFoundation et Validator
- Le cœur de Drupal subit « some of these vulnerabilities », pour reprendre la formule officielle
- Source : symfony.com/blog/category/security-advisories
Les autres briques remises à niveau
- Composer 2.9.8 : durcissement sécurité, à surveiller sur les pipelines CI/CD qui lancent composer install au déploiement
- Underscore.js 1.13.8 : durcissement côté front, réservé à Drupal 10.6.9
Ce qu'il faut en retenir : se dire « on tourne sur MySQL, donc rien à craindre » est une erreur. L'injection SQL PostgreSQL fait le titre de l'advisory, mais les CVE Twig et Symfony qui l'accompagnent visent l'ensemble du parc Drupal. Le correctif s'applique partout, quel que soit le moteur de base, dans la fenêtre de 72 heures préconisée par Drupal.
Branches touchées et branches déjà corrigées
La faille frappe toutes les branches 8.x, 9.x, 10.x et 11.x ; seul Drupal 7 reste à l'écart de ce défaut précis. Le tableau qui suit récapitule les correctifs officiellement mis en ligne le 20 mai 2026.
| Branche | Statut | Version vulnérable | Version corrigée | Type de patch |
|---|---|---|---|---|
| Drupal 11.3 | Supportée | < 11.3.10 | 11.3.10 | Composer direct |
| Drupal 11.2 | Supportée (EOL juin 2026) | < 11.2.12 | 11.2.12 | Composer direct |
| Drupal 11.1 / 11.0 | EOL | toutes | 11.1.10 (patch fichier) | Best-effort, migration recommandée |
| Drupal 10.6 | Supportée | < 10.6.9 | 10.6.9 | Composer direct |
| Drupal 10.5 | Supportée (LTS jusqu'à juin 2026) | < 10.5.10 | 10.5.10 | Composer direct |
| Drupal 10.4 | EOL | toutes | 10.4.10 (patch fichier) | Best-effort, migration recommandée |
| Drupal 10.3 et antérieures 10.x | EOL | toutes | Aucun patch direct | Upgrade vers 10.5 ou 10.6 puis patch |
| Drupal 9.5 | EOL nov. 2023 | toutes | 9.5.11 (patch fichier) | Best-effort, migration recommandée |
| Drupal 9.0 - 9.4 | EOL | toutes | Aucun patch direct | Migrer en 9.5.11 ou directement Drupal 11.3 |
| Drupal 8.9 | EOL nov. 2021 | toutes | 8.9.20 (patch fichier) | Best-effort, migration recommandée |
| Drupal 8.0 - 8.8 | EOL | toutes | Aucun patch direct | Migrer en 8.9.20 puis patch, ou direct Drupal 11 |
| Drupal 7 | EOL janv. 2025 | Non concerné | - | Autres failles non corrigées depuis l'EOL |
Ces correctifs « best-effort » destinés aux branches en fin de vie (11.1, 10.4, 9.5, 8.9) relèvent d'une dérogation que Drupal n'accorde qu'en raison de la criticité. Le projet ne s'en cache pas : « provided as one-time best-effort, not guaranteed to work correctly, might introduce other bugs or regressions ». Pour 11.0, les 10.3 et plus anciennes, les 9.0 à 9.4 et les 8.0 à 8.8, aucun correctif applicable directement n'existe : la marche à suivre est d'abord de monter sur la dernière mineure de la branche, puis de poser le patch.
Quel parcours de correction selon votre branche
Voici les scénarios pratiques, du plus direct — vous êtes déjà sur la dernière mineure soutenue — au plus délicat, lorsqu'il faut franchir plusieurs versions abandonnées d'affilée.
Vous tournez en Drupal 11.3.x
La situation la plus confortable. Lancez composer require drupal/core-recommended:11.3.10 drupal/core-composer-scaffold:11.3.10 drupal/core-project-message:11.3.10 --update-with-dependencies, enchaînez avec drush updb puis drush cr, et validez en préproduction. Comptez en général 2 à 4 heures, tests compris, sans crainte de régression notable.
Vous tournez en Drupal 11.2.x
Montée directe vers 11.2.12 via la même commande Composer, ajustée à la version. Comme 11.2 s'éteint en juin 2026, il faudra de toute façon rejoindre 11.3 avant cette échéance ; cela dit, le correctif immédiat suffit déjà à neutraliser SA-CORE-2026-004.
Vous tournez en Drupal 11.0 ou 11.1 (fin de vie)
Deux voies se présentent. Le choix conseillé : passer d'un coup en 11.3.10 par Composer (en réglant les conflits de dépendances et en testant), ce qui solde au passage les mineures sautées. La parade d'urgence : poser le patch fichier 11.1.10 livré en best-effort pour grappiller 24 heures, puis caler la bascule vers 11.3 dans la semaine. Quoi qu'il arrive, ne campez pas sur 11.0 ou 11.1 au-delà de ce dépannage.
Vous tournez en Drupal 10.6.x
Montée directe vers 10.6.9. La branche 10.6 bénéficie d'un support sécurité jusqu'à l'arrivée de Drupal 12 (décembre 2026). Reste ensuite à arbitrer : migrer vers 11.3 ou patienter jusqu'à Drupal 12, selon votre feuille de route. Voir mon guide Drupal 12 roadmap 2026.
Vous tournez en Drupal 10.5.x (LTS)
Montée directe vers 10.5.10. La 10.5 joue le rôle de version quasi-LTS de la branche 10 et reçoit des correctifs de sécurité jusqu'en juin 2026. À planifier après coup : la transition vers 10.6, vers 11.3, ou l'attente de Drupal 12. Pour les dates et le détail des options, consultez mon guide fin de vie Drupal 10.
Vous tournez en Drupal 10.4 (fin de vie)
Voie conseillée : passer directement en 10.6.9 avec Composer. Voie d'urgence : le patch fichier 10.4.10 fourni en best-effort. Depuis la sortie de 10.5 et 10.6, la 10.4 ne reçoit plus rien et empile les failles non corrigées. La montée vers 10.6 — ou directement vers 11.3 — doit suivre sans tarder.
Vous tournez en Drupal 10.0, 10.1, 10.2 ou 10.3 (fin de vie)
Pas de correctif applicable tel quel. Il faut d'abord rejoindre la 10.5 ou la 10.6 (Composer puis tests), avant d'y appliquer le patch de la version visée. Comptez un chantier de 2 à 5 jours selon l'état du code custom et des modules contribués. Sauter directement en 11.3 se défend aussi, si vous voulez éviter une double migration sous six mois.
Vous tournez en Drupal 9.x (fin de vie nov. 2023)
Drupal 9 n'est plus maintenu par la communauté depuis le 1er novembre 2023. Le patch 9.5.11 arrive en best-effort one-time, mais le constat reste le même : hors exception comme aujourd'hui, plus aucun correctif n'a été publié sur Drupal 9 depuis dix-huit mois. La cible logique est Drupal 11.3, devenue de fait la prochaine LTS pour qui quitte D9. Le degré de difficulté tient à la qualité du code de départ : un site tenu à jour jusqu'en 9.5.x se migre bien plus aisément qu'un 9.0 figé.
Vous tournez en Drupal 8.x (fin de vie nov. 2021)
Profil classique que je croise encore : un site en 8.4.8 toujours en ligne, jamais touché depuis 2017. Drupal 8 a quitté le support communautaire en novembre 2021, soit plus de quatre ans sans correctifs réguliers. Le patch 8.9.20 en best-effort exige d'abord d'être sur la branche 8.9. Pour un site en 8.0 à 8.8, trois pistes :
- Piste 1 — remontée 8.x → 8.9.20 puis patch officiel : 2 à 4 jours selon le code, le temps de franchir plusieurs mineures (prérequis PHP, configuration management, modules contribués). C'est la voie homologuée, avec un patch garanti.
- Piste 2 — adaptation manuelle du patch à votre 8.x : 0,5 à 1 jour. Tolérée par Drupal, mais étiquetée « not guaranteed to work correctly ». Un pansement provisoire qui ne règle pas le fond.
- Piste 3 — migration franche vers Drupal 11.3 : chantier plus conséquent (audit des modules, refactor éventuel), mais qui met le site tranquille pour quatre ans. C'est souvent le meilleur rapport coût/bénéfice en 8.x.
Vous tournez en Drupal 7 (fin de vie janv. 2025)
À la fois rassurant et préoccupant. Le bon côté : SA-CORE-2026-004 ne vous touche pas, l'architecture de Drupal 7 n'ayant rien à voir avec la couche DB abstraction de Drupal 8 et au-delà. Le mauvais : Drupal 7 est sorti du support communautaire le 5 janvier 2025, et plus aucun correctif n'est diffusé depuis. Vous cumulez seize mois de failles laissées ouvertes. Trois options : migrer vers Drupal 11.3 (mon conseil), basculer sur WordPress si Drupal ne se justifie plus, ou souscrire le support étendu payant de HeroDevs. Voir mon guide fin de vie Drupal 7.
Seuils PHP et base de données, branche par branche
Avant tout patch ou toute migration, assurez-vous que la version de PHP et le moteur de base disponibles chez votre hébergeur supportent la version visée. C'est le verrou à lever en premier : si l'hébergement coince, tout le calendrier glisse. Le tableau ci-dessous rassemble les prérequis officiels, recoupés sur drupal.org et les release notes de chaque version. Pour les branches anciennes (8.0 à 8.8), une partie des chiffres vient de la documentation officielle archivée.
| Version Drupal | Sortie | PHP min | PHP reco | MySQL min | MariaDB min | PostgreSQL min | SQLite min |
|---|---|---|---|---|---|---|---|
| 8.0 | nov. 2015 | 5.5.9 | 5.6 / 7.0 | 5.5.3 | 5.5.20 | 9.1.2 | 3.6.8 |
| 8.4 | oct. 2017 | 5.5.9 | 7.0+ | 5.5.3 | 5.5.20 | 9.1.2 | 3.6.8 |
| 8.7 | mai 2019 | 7.0.8 | 7.2 | 5.5.3 | 5.5.20 | 9.1.2 | 3.6.8 |
| 8.8 | déc. 2019 | 7.0.8 | 7.3 | 5.7.8 | 10.1 | 10 | 3.26 |
| 8.9 (LTS) | juin 2020 | 7.0.8 | 7.3 / 7.4 | 5.7.8 | 10.3.7 | 10 | 3.26 |
| 9.0 | juin 2020 | 7.3 | 7.4 | 5.7.8 | 10.3.7 | 10 + pg_trgm | 3.26 |
| 9.4 | juin 2022 | 7.4 | 8.1 | 5.7.8 | 10.3.7 | 10 | 3.26 |
| 9.5 | déc. 2022 | 7.4 | 8.1.6 | 5.7.8 | 10.3.7 | 10 | 3.26 |
| 10.0 | déc. 2022 | 8.1 | 8.1.6 | 5.7.8 | 10.3.7 | 12 + pg_trgm | 3.26 |
| 10.5 (LTS) | juin 2025 | 8.1 | 8.3 | 5.7.8 | 10.3.7 | 12 | 3.26 |
| 10.6 | déc. 2025 | 8.1 | 8.4 | 5.7.8 | 10.3.7 | 12 | 3.26 |
| 11.0 | août 2024 | 8.3 | 8.3 | 8.0 | 10.6 | 16 | 3.45 |
| 11.3 | déc. 2025 | 8.3 | 8.4 | 8.0 | 10.6 | 16 | 3.45 |
| 12.0 (prévu) | déc. 2026 | 8.5 | 8.5 | 8.0 | 10.11 | 18 | 3.45 |
Les paliers de transition à garder en tête
- PHP 5.5.9 → 7.0.8 : relevé dès Drupal 8.7.0 (mai 2019) pour les installations neuves, puis rendu bloquant en mise à jour à partir de 8.8.0 (décembre 2019).
- PHP 7.3 → 7.4 : à partir de Drupal 9.4 (juin 2022), un avertissement apparaît sous 7.3, la sécurité n'étant plus assurée en deçà de 7.4.
- PHP 8.1 plancher : posé avec Drupal 10.0 (déc. 2022) ; la 8.1.6 est conseillée pour contourner un bug OPcache des toutes premières 8.1.x.
- PHP 8.3 plancher : instauré par Drupal 11.0 (août 2024), avec PHP 8.4 recommandé dès 10.6 et 11.3.
- PHP 8.5 plancher : prévu pour Drupal 12.0 (déc. 2026), avec compilation argon2 obligatoire.
- Symfony : 3.4 dès Drupal 8.4, 4.4 avec Drupal 9, 6.2 avec Drupal 10.0, 7.1 avec Drupal 11.0, et une branche 8.x annoncée pour Drupal 12.
- Côté bases : le palier MySQL 5.7.8 / MariaDB 10.3.7 / PostgreSQL 10 / SQLite 3.26 est entré en vigueur avec Drupal 8.8 et 9.0 ; Drupal 10.0 a relevé PostgreSQL à 12 ; Drupal 11.0 a poussé MySQL à 8, MariaDB à 10.6, PostgreSQL à 16 et SQLite à 3.45.
Une réalité de terrain en mai 2026 : tous les mutualisés n'offrent pas encore PHP 8.4 par défaut, et certaines formules d'entrée de gamme plafonnent à 8.2 ou 8.3. Chez des hébergeurs comme OVH, 1and1, Gandi ou Infomaniak, il faut souvent forcer la bonne version de PHP à la main depuis le panneau d'administration. Cette vérification se fait en amont du plan de migration applicatif, jamais en cours de route.
Sites en retard : la dette de sécurité qui s'empile
SA-CORE-2026-004 ne tombe pas du ciel. Pour un site laissé sans correctif depuis sa fin de vie, le cumul des failles déjà ouvertes pèse parfois plus lourd que la PSA du jour. Quelques repères historiques pour situer l'enjeu :
Drupalgeddon 2 — mars 2018 (SA-CORE-2018-002)
CVE-2018-7600, notée 24/25 (Highly Critical). Une exécution de code distant dans le Form API, déclenchable par requête anonyme. Le proof-of-concept a circulé moins de 48 heures après la divulgation. Plus d'un million de sites Drupal sont tombés dans les semaines qui ont suivi, surtout pour du minage de cryptomonnaie et du défacement. C'est l'antécédent direct de SA-CORE-2026-004.
Drupalgeddon 3 — avril 2018 (SA-CORE-2018-004)
CVE-2018-7602, notée 20/25 (Highly Critical). Une RCE jumelle dans le Form API, cette fois exploitable par un utilisateur déjà connecté. Diffusée trois semaines après Drupalgeddon 2 pour colmater un chemin d'attaque resté ouvert.
SA-CORE-2019-003 et les années qui suivent
Entre 2019 et 2023, plusieurs advisories Highly Critical (RCE, XSS persistant, contournement d'accès) cotées 18 à 19/25, mais sans PSA dédiée. Un site Drupal 8 figé depuis 2018, ou un Drupal 9 jamais touché depuis 2022, traîne ainsi une dizaine de failles documentées — sans même compter celles de ses modules contribués.
SA-CORE-2026-001, 002 et 003
Trois advisories Drupal parues au premier trimestre 2026 sur des vecteurs plus ordinaires (XSS, contournement d'accès). Criticité moyenne à élevée, déjà intégrée aux mineures de mars et avril 2026. Un site à jour de ses mineures est donc couvert sur ces points.
L'enseignement qui traverse tout cela : la maintenance Drupal n'est pas une dépense facultative. Un site sous TMA active reçoit ses correctifs dans les 24 à 72 heures suivant la divulgation. Un site qui en est dépourvu accumule les failles par défaut, et la facture de remise à niveau grimpe d'autant plus vite que le retard s'allonge. Sur les audits que je mène, un Drupal 8.x ou 9.x oublié pendant trois à cinq ans demande couramment 5 à 15 jours de travail expert pour être rattrapé, hors mise en place d'une TMA récurrente.
Ma méthode d'audit avant patch ou migration
Voici la trame que je déroule sur les interventions en urgence après une PSA, ou plus largement pour cadrer une montée de version Drupal. À la clé, un mini-rapport livré sous 24 à 48 heures, chiffrage à l'appui et plan d'action concret.
- Relevé de l'infrastructure : version exacte de PHP, version et type de base (PostgreSQL en priorité), version de l'OS, nature de l'hébergement (mutualisé, VPS, cloud), accès SSH ou non, et présence — ou création à prévoir — d'une préproduction iso-prod.
- Version précise du cœur Drupal : un
drush core:statusdonne le numéro exact (entre une 8.4.0 et une 8.4.8 d'un même environnement, l'écart compte parfois beaucoup). - Recensement des modules contribués :
drush pm:list --status=enabled --type=module --no-core, recoupé avec la liste des projets abandonnés sur drupal.org. Un module sans release récente ou estampillé « abandoned » est une bombe à retardement. - Examen du code custom : modules maison dans
modules/custom/, thèmes spécifiques, fichierssettings.phpetservices.yml, vieux hooks (hook_menu et consorts) qui trahissent du code hérité. - Patches déjà en place :
composer-patches.jsonou la sectionpatchesducomposer.json. Pour chacun : toujours utile (issue ouverte sur drupal.org), intégré en amont (donc retirable) ou périmé ? - Chaîne de déploiement : Git en place, intégration continue configurée (GitLab, GitHub Actions, Jenkins, Bitbucket Pipelines), procédure de mise en ligne documentée, retour arrière automatisable ?
- Sauvegardes : existe-t-il une politique de backup, à quelle fréquence, avec une restauration testée récemment ? Sans sauvegarde éprouvée, toute intervention de sécurité devient hasardeuse.
- Trafic et surface d'exposition : volume quotidien moyen, comptes authentifiés, formulaires ouverts au public, CDN ou pare-feu applicatif en place (Cloudflare, Akamai, Drupal Steward) ?
- Données sensibles : y a-t-il des données personnelles, de santé ou financières ? Le périmètre RGPD conditionne le délai légal de notification à la CNIL en cas de compromission (72 heures pour les données personnelles).
- Plan d'action : une recommandation motivée (patch immédiat, montée mineure, montée majeure ou refonte), un chiffrage en jours-homme, un calendrier prévisionnel et des jalons de validation côté client.
Sur les interventions urgentes qui suivent une PSA, mon audit pré-patch type tient en 1 jour de travail. Le livrable habituel : un mini-rapport de 4 à 6 pages reprenant les points ci-dessus, assorti de la recommandation chiffrée. Pour les clients en TMA Drupal active, cet audit fait partie du forfait : rien de plus à facturer, et l'intervention démarre sans délai.
La bonne décision selon votre profil
Une fois le correctif posé, voici l'orientation que je conseille en fonction de l'état de votre site. Ces repères découlent des projets Drupal que je conduis en France et au Luxembourg, dont un portail national d'information publique de l'État pour le secteur public.
Branche soutenue et à jour — serein
Vous êtes en 11.3, 11.2, 10.6 ou 10.5 avec une TMA active. Vous appliquez le correctif en 2 à 4 heures, vous validez en préproduction, vous mettez en ligne : le déroulé normal d'une TMA sérieuse. Sans contrat de maintenance, c'est le bon moment pour en ouvrir un — un événement de l'ampleur de SA-CORE-2026-004 ne devrait pas reposer sur une décision prise au coup par coup.
Fin de vie récente (10.4, 11.1) — rattrapage express
Vous êtes en 10.4 ou 11.1, tout juste sorties du support. Posez le patch best-effort en urgence, puis rejoignez la dernière version soutenue de la branche dans la semaine. Le retard reste contenu et la remise à niveau est balisée : 2 à 5 jours selon le code custom et les modules contribués.
Drupal 9 — migration à prioriser
Drupal 9 n'est plus maintenu depuis novembre 2023 : dix-huit mois de failles sans correctif se sont accumulés. Visez directement Drupal 11.3, sans crochet par D10 qui s'éteindra en décembre 2026. Chantier courant de 5 à 15 jours selon le code. La PSA du jour est l'occasion idéale de lancer ce projet.
Drupal 8 — urgence puis migration
Drupal 8 est hors support depuis quatre ans et demi. Procédez en deux temps : un correctif d'urgence (best-effort 8.9.20, ou adaptation manuelle si le site est sous 8.9) pour s'offrir un ou deux mois, puis le saut vers Drupal 11.3. Aller droit en D11, sans transiter par D9 ou D10, offre souvent le meilleur retour sur investissement.
Drupal 7 — épargné mais à risque
SA-CORE-2026-004 ne vous touche pas, mais Drupal 7 est hors support depuis janvier 2025, soit seize mois d'autres failles laissées ouvertes. La PSA du jour sert d'alerte : le danger est structurel, pas passager. Vos options : migrer vers Drupal 11, basculer sur WordPress si Drupal ne se justifie plus, ou prendre le support étendu payant de HeroDevs pour gagner du temps. Voir mon guide fin de vie Drupal 7.
Vous ignorez où vous en êtes
Scénario courant : un site Drupal récupéré d'un ancien prestataire, sans inventaire à jour ni chaîne de déploiement documentée. L'audit pré-patch — 1 jour, cadré, avec mini-rapport à la clé — est taillé pour ce cas de figure. Il vous offre une vision nette avant d'arbitrer, et le chiffrage de l'intervention à prévoir.
Et du côté du Luxembourg ?
La PSA vaut pour tout l'écosystème Drupal, quelle que soit la juridiction. Les organisations luxembourgeoises sous Drupal sont donc logées à la même enseigne, avec deux spécificités locales à anticiper.
Notifier la CNPD en cas de compromission
Si l'attaque aboutit et entraîne une fuite de données personnelles, il faut saisir la CNPD (Commission nationale pour la protection des données) dans un délai de 72 heures. Le cadre épouse le RGPD européen, donc l'équivalent de la CNIL en France, mais pour un responsable de traitement établi au Luxembourg, c'est bien la CNPD qui fait référence. La déclaration passe par le portail guichet.lu.
NIS2 et activités critiques
Pour les entités qualifiées d'essentielles ou d'importantes au titre de la directive NIS2 transposée au Luxembourg (loi du 7 décembre 2023), traiter une faille Highly Critical relève des incidents de cybersécurité à déclarer. La HCPN (Haut-Commissariat à la Protection nationale) pilote ces notifications. Un site Drupal compromis qui sert un service essentiel doit être signalé au CSIRT national selon les échéances NIS2 : 24 heures pour l'alerte précoce, 72 heures pour la notification d'incident et un mois pour le rapport final.
La CSSF pour la place financière
Les entités supervisées par la CSSF (Commission de surveillance du secteur financier) suivent un régime propre de signalement des incidents informatiques (circulaire CSSF 22/806, et règlement DORA pour les acteurs financiers européens depuis janvier 2025). Pour le site Drupal exposé d'une banque, d'un assureur ou d'un PSF luxembourgeois, le circuit d'alerte conjugue la CNPD (volet données personnelles), la CSSF (volet régulé) et, le cas échéant, l'autorité européenne de tutelle.
Pour les projets Drupal menés au Luxembourg, découvrez mon offre Drupal Luxembourg (RAWeb, multilingue FR/DE/EN/LU, public comme privé) et ma ressource écosystème Drupal LU.
SA-CORE-2026-004 : vos questions, mes réponses
Les sources officielles que j'ai consultées
Ce contenu repose sur les sources primaires ci-dessous, que j'ai recoupées de mon côté au 21 mai 2026. Les liens pointent vers des sites externes et sont susceptibles d'évoluer.
Sources Drupal officielles
- drupal.org/psa-2026-05-18 - Public Service Announcement
- drupal.org/sa-core-2026-004 - Advisory complète
- drupal.org/project/drupal/releases/11.3.10 - Release notes
- drupal.org/project/drupal/releases/10.6.9 - Release notes
- drupal.org/steward - Service Drupal Steward
- drupal.org/schedule - Calendrier officiel des releases
- drupal.org/docs/php-requirements - Prérequis PHP officiels
- drupal.org/docs/database-server-requirements - Prérequis base de données
Bibliothèques tierces
- NVD - CVE-2026-9082 - Base de données nationale CVE
- Symfony Security Advisories - Symfony 6.4.40 / 7.4.12
- GitHub - Twig Security Advisories - Twig 3.26.0
Autorités de régulation (FR / LU)
J'actualise cette page à mesure que les communications officielles paraissent. Si un élément factuel vous paraît inexact ou lacunaire, écrivez-moi à contact@reydenweb.fr.
À explorer ensuite
TMA Drupal : le guide complet
Une bonne maintenance déploie les correctifs de sécurité dans les 24 à 72 heures qui suivent chaque advisory. Ce guide passe en revue ce que votre contrat de TMA devrait couvrir.
Drupal 12 - roadmap 2026
Livraison visée au 7 décembre 2026, socle PHP 8.5, Symfony 8 et modules écartés : de quoi anticiper sereinement votre prochaine montée de version majeure.
Fin de vie Drupal 10 - 9 décembre 2026
Le support de Drupal 10 s'arrête en décembre 2026. Au programme : dates précises, voies de migration vers Drupal 11 ou 12, prérequis et budget.
Drupal 7 en fin de vie : quelles options ?
Drupal 7 n'est plus maintenu depuis janvier 2025. Encore en D7 ? C'est le premier sujet à régler : migration, support étendu HeroDevs ou refonte complète.
Mon offre Drupal
Migrations de Drupal 7 à 12, correctifs de sécurité en urgence, modules sur mesure, accessibilité RGAA et intégration DSFR. Référence : un portail national d'information publique de l'État.
Drupal au Luxembourg
Projets Drupal menés au Luxembourg, avec l'éclairage réglementaire local : CNPD, NIS2, CSSF et RAWeb. En multilingue FR / DE / EN / LU.
Un site Drupal à auditer ou à corriger ?
Échangeons.