Faille CVE-2026-42608 dans Grav CMS : décryptage de l'attaque ShinyHunters contre le site de fuite de Clop
Églantine Montclair
Le groupe de ransomware Clop, tristement célèbre pour avoir exploité la vulnérabilité MOVEit en 2023, a été victime d’une intrusion retentissante en septembre 2024. ShinyHunters, un groupe concurrent, a piraté et défiguré son site de fuite de données hébergé sur le réseau Tor. L’outil de travail des cybercriminels s’est retourné contre eux. La cause ? Une vulnérabilité de traversée de chemin non authentifiée dans le CMS Grav, identifiée sous la référence CVE-2026-42608. Cet incident, rapporté en exclusivité par BleepingComputer et confirmé par l’éditeur Grav, est une leçon magistrale de patch management qui dépasse largement le cercle des initiés de la cybercriminalité. Il rappelle une vérité universelle en sécurité des systèmes d’information : un système non mis à jour est une porte ouverte aux attaquants, quels que soient les compétences de ses administrateurs. Cette affaire est d’autant plus édifiante que Clop est un groupe notoirement technique ; leur propre négligence sur un outil aussi basique que la mise à jour d’un CMS prouve que la sécurité n’est jamais acquise.
Contexte de l’attaque : quand les chasseurs deviennent les chassés
Le déroulement de l’opération
ShinyHunters a annoncé avoir compromis le site de Clop en déposant un simple fichier texte, puis en le remplaçant par une page de défiguration (defacement) complète. Le groupe a immédiatement revendiqué le vol de données sensibles : code source du site de fuite, plugins Grav, logs serveur, et surtout les clés privées du service Tor de Clop. Une demande de rançon a été émise, menaçant de divulguer ces informations. Le site de Clop, un onion service, n’a pas été protégé par l’anonymat de Tor une fois la vulnérabilité applicative exposée.
La réaction de Clop
De son côté, Clop a nié tout lien avec ShinyHunters. “Nous ne les connaissons pas, nous n’avons jamais travaillé avec eux, et nous ne sommes actuellement pas en contact avec eux ; de plus, nous ne leur avons fourni aucune information, et nous ne le ferons pas - ni maintenant ni à l’avenir”, a déclaré le groupe à BleepingComputer. Clop a reconnu que son installation Grav n’était “pas totalement à jour”, mais a minimisé l’impact, affirmant que le serveur ne contenait “aucune donnée opérationnelle ou financière”. Malgré ces dénégations, Clop a déplacé son site vers une nouvelle adresse Tor, et le groupe a été discrètement retiré du site de fuite de ShinyHunters, un signe qui ne trompe pas les observateurs.
Décryptage technique : la vulnérabilité CVE-2026-42608
Un vecteur d’attaque dans la gestion des formulaires
Selon les détails techniques partagés par ShinyHunters avec BleepingComputer, et confirmés par Grav, le serveur de Clop exécutait la version 1.7.43 de Grav CMS. La vulnérabilité se situe dans le cœur (core) de Grav, et non dans le plugin Form, comme cela aurait pu être suspecté. Le paramètre __unique_form_id__ est utilisé par Grav pour garantir l’unicité d’un formulaire lors du processus d’upload.
Le problème est que ce paramètre, fourni par l’utilisateur via HTTP POST, est utilisé pour construire le chemin de fichiers sans être assaini au préalable. Le chemin typique généré est le suivant :
tmp/forms/<session_id>/<unique_id>
Un attaquant peut fournir une valeur telle que ../../../../shhq ou des variantes plus agressives. Cela force le système à créer le répertoire de destination en dehors du dossier temporaire prévu, par exemple à la racine du site web. Imaginez un site e-commerce sous Grav avec un formulaire de contact permettant l’envoi de pièces jointes. Un attaquant exploitant cette faille pourrait télécharger un webshell à la racine du site, accédant ainsi à la base de données et aux fichiers sensibles.
Confirmation et correctif
Grav a confirmé l’exactitude des informations. “Oui, c’est une faille légitime, et la description de l’acteur malveillant est exacte”, a déclaré l’équipe Grav. La vulnérabilité, traquée sous la CVE-2026-42608, avait déjà été corrigée dans la version 2.0.0-beta.2 de Grav en avril 2024. Le correctif ajoutait une fonction de validation sanitizeId() n’acceptant qu’une liste blanche très stricte de caractères :
[A-Za-z0-9,_-]{1,64}
“Le bug vit dans le cœur de Grav, pas dans le plugin Form. La version du plugin Form (7.3.0 dans leur exemple) ne change donc pas la vulnérabilité d’un site. C’est la version du noyau qui compte”, a précisé Grav à BleepingComputer.
Le problème du backport
Le point critique révélé par cet incident est que le correctif n’avait pas été backporté vers la branche 1.7 de Grav. Grav a expliqué : “Le fossé concernait la branche 1.7. Grav 2.0 est la version majeure actuelle, mais de nombreux sites sont encore sur 1.7, et ce correctif n’y avait pas encore été backporté.”
Cela signifie que tous les sites utilisant Grav 1.7.x, pourtant une version toujours maintenue, étaient exposés à une vulnérabilité critique connue depuis des mois. Après la divulgation des détails, Grav a agi rapidement en publiant la version 1.7.53.4 contenant le correctif backporté.
Enseignements pour la sécurité des infrastructures numériques
Patch management : une discipline sous-estimée
L’attaque contre Clop est un cas d’école du défaut de patch management. Un correctif existait depuis 5 mois pour la version 2.0, mais Clop utilisait la 1.7.43. Ce n’est pas seulement un problème de “mise à jour automatique”, mais un problème de gestion du cycle de vie des logiciels. Les équipes en charge de la sécurité doivent connaître la politique de backport des éditeurs de leurs solutions. Si un éditeur se concentre sur sa branche majeure, les utilisateurs des branches stables plus anciennes doivent être conscients du risque de patch gap.
Validation des entrées et dette technique
La faille CVE-2026-42608 est une violation directe du principe de Input Validation de l’OWASP. Accepter des paramètres non filtrés pour créer des chemins de fichiers est une erreur de conception classique. La solution de l’allowlist (whitelist) est la bonne approche.
En outre, cet incident souligne l’importance du principe de moindre privilège. Même si un attaquant parvient à uploader un fichier, les permissions du serveur web doivent limiter sa capacité à exécuter du code. L’isolation du serveur web via conteneurisation peut limiter l’impact.
Selon les bonnes pratiques de l’ANSSI, et notamment le guide de sécurisation d’un CMS, il est impératif de maintenir son socle technique dans une version supportée par l’éditeur. En France, la directive NIS 2 et le RGPD imposent une obligation de sécurité. Négliger une mise à jour de sécurité critique peut être considéré comme un manquement à cette obligation. Connaître précisément la version de chaque composant de son CMS (le Software Bill of Materials ou SBOM) est la première étape pour savoir si l’on est vulnérable à une CVE donnée. Combien de sites français tournent encore sur une version non maintenue de leur CMS ? Ce chiffre est probablement très élevé, et cette affaire doit servir d’électrochoc.
Mise en œuvre : sécuriser votre instance Grav
Voici les actions concrètes à entreprendre immédiatement pour protéger votre site Grav :
- Vérifiez votre version : Exécutez
php bin/grav versiondans votre installation. Si vous êtes en 1.7.x, vérifiez le numéro exact. - Mettez à jour la branche 1.7 : Si vous utilisez Grav 1.7.0 à 1.7.53.3, une mise à jour immédiate vers 1.7.53.4 est impérative. Utilisez la commande
bin/gpm update. - Planifiez une migration vers Grav 2.x : La branche 2.x est la version active de Grav, bénéficiant de toutes les corrections de sécurité les plus récentes.
- Auditez l’intégrité de votre serveur : Recherchez la présence de fichiers inconnus dans les répertoires
tmpetwebroot. Vérifiez les logs d’accès pour toute activité suspecte autour du paramètre__unique_form_id__. - Mettez en place une veille cybersécurité : Suivez les annonces de sécurité de Grav, de l’ANSSI et du CERT-FR. Utilisez un gestionnaire de vulnérabilités pour être alerté en temps réel des CVE impactant votre pile logicielle.
Tableau récapitulatif des versions Grav impactées
| Version de Grav | Statut CVE-2026-42608 | Action recommandée |
|---|---|---|
| 1.7.0 - 1.7.53.3 | Vulnérable | Mise à jour vers 1.7.53.4 immédiatement |
| 1.7.53.4+ | Corrigé | Surveiller les mises à jour futures |
| 2.0.0 (avant beta 2) | Vulnérable | Mise à jour vers la dernière 2.0.x |
| 2.0.0-beta.2 et ultérieures | Corrigé | S’assurer d’être sur le dernier patch |
Conclusion : agissez avant qu’il ne soit trop tard
L’attaque de ShinyHunters contre le site de fuite de Clop n’est pas une simple anecdote dans le monde de la cybercriminalité. C’est un signal d’alarme pour tous les professionnels de la sécurité. Elle prouve qu’une vulnérabilité dans un CMS, même connue et corrigée en amont, peut avoir des conséquences dévastatrices si elle n’est pas correctement diffusée à toutes les versions maintenues.
La faille CVE-2026-42608 dans Grav CMS est désormais de notoriété publique. Les détails de son exploitation sont accessibles. L’erreur de Clop est un condensé de mauvaises pratiques : utilisation d’une version obsolète, absence de veille sur les CVE, et négligence du backporting. Ne laissez pas votre organisation faire les mêmes erreurs. Le temps de la réaction est passé, place à l’action. Vérifiez vos installations, appliquez les correctifs, et surtout, repensez votre stratégie de patch management. La sécurité de votre site commence par une mise à jour.