| Nom du plugin | Complianz |
|---|---|
| Type de vulnérabilité | Script intersite (XSS) |
| Numéro CVE | CVE-2025-11185 |
| Urgence | Faible |
| Date de publication CVE | 2026-02-17 |
| URL source | CVE-2025-11185 |
Urgent : Complianz <= 7.4.3 XSS stocké via Shortcode — Ce que les propriétaires de sites WordPress doivent faire maintenant
Auteur : Expert en sécurité de Hong Kong
TL;DR
Une vulnérabilité de Cross-Site Scripting (XSS) stockée a été divulguée dans le plugin de consentement aux cookies Complianz GDPR/CCPA pour WordPress affectant les versions <= 7.4.3 (CVE-2025-11185). Un utilisateur authentifié avec des privilèges de Contributeur (ou supérieurs) peut injecter du JavaScript via des shortcodes de plugin. Cette charge utile est stockée et rendue plus tard, permettant l'exécution de code côté client dans le contexte des visiteurs et des administrateurs du site.
Si vous utilisez ce plugin, agissez rapidement :
- Mettez à jour Complianz vers la version 7.4.4 ou ultérieure immédiatement — cela corrige complètement le problème.
- Si vous ne pouvez pas mettre à jour tout de suite, utilisez les atténuations ci-dessous : restreindre les capacités des contributeurs, rechercher et supprimer les shortcodes suspects et le contenu ressemblant à des scripts, et appliquer des correctifs virtuels temporaires via votre WAF ou vos mécanismes de filtrage.
- Utilisez la liste de contrôle de détection et de réponse aux incidents ci-dessous pour valider et récupérer si nécessaire.
Contexte : ce qui s'est passé et pourquoi cela compte
Le plugin de consentement aux cookies Complianz expose un problème XSS stocké lorsque certains shortcodes acceptent des entrées non fiables qui ne sont pas correctement assainies ou encodées avant la sortie. Un attaquant qui peut obtenir un compte de niveau contributeur (par exemple, via l'enregistrement ou la compromission de compte) peut créer ou modifier du contenu contenant une charge utile de shortcode malveillante. Lorsque ce contenu est rendu sur le frontend — ou visualisé dans certains contextes administratifs — le script malveillant s'exécute dans le navigateur de la victime.
Le XSS stocké est particulièrement dangereux car la charge utile est enregistrée dans la base de données du site et s'exécutera pour chaque visiteur ou administrateur qui consulte la page affectée jusqu'à ce qu'elle soit supprimée.
Faits clés en un coup d'œil
- Logiciel affecté : plugin de consentement aux cookies Complianz GDPR/CCPA pour WordPress
- Versions vulnérables : <= 7.4.3
- Corrigé dans : 7.4.4
- CVE : CVE-2025-11185
- Privilège requis : Contributeur (authentifié)
- Type : Cross-Site Scripting (XSS) stocké
- État du correctif : Mise à jour disponible — mettez à niveau immédiatement
Cause racine technique (niveau élevé)
Les shortcodes permettent aux plugins d'accepter des attributs et du contenu qui sont ensuite rendus en HTML. Lorsqu'un plugin ne parvient pas à assainir ou à échapper à ces valeurs avant la sortie, un attaquant peut insérer du balisage ou du JavaScript qui s'exécutera dans les navigateurs des utilisateurs.
Dans ce cas, la gestion des shortcodes du plugin a accepté des données contrôlées par le contributeur et les a ensuite sorties sans un encodage ou un filtrage suffisant. Cette combinaison — création de contenu authentifiée plus encodage de sortie non sécurisé — entraîne un XSS stocké. Il s'agit d'un problème spécifique au plugin, et non d'un problème avec la fonctionnalité de shortcode de base de WordPress.
Impact et scénarios dans le monde réel
Les conséquences des XSS stockés vont au-delà de la “ nuisance côté client ” :
- Vol de session : les cookies ou jetons accessibles à JavaScript peuvent être exfiltrés.
- Élévation de privilèges : si un administrateur consulte le contenu malveillant, l'attaquant peut effectuer des actions en utilisant cette session.
- Dommages à la réputation et au SEO : les publicités injectées, les redirections ou le contenu malveillant nuisent à la confiance et aux classements.
- Distribution de logiciels malveillants : redirections vers des sites malveillants ou téléchargements automatiques.
- Exfiltration de données : extraction de contenu DOM sensible visible dans le navigateur.
- Compromission persistante : les charges utiles stockées restent jusqu'à leur suppression et peuvent soutenir des attaques ultérieures.
Les sites qui permettent aux administrateurs ou éditeurs de prévisualiser le contenu des contributeurs sont à risque accru - un attaquant n'a besoin que d'un utilisateur privilégié pour voir le contenu malveillant afin d'accroître l'impact.
Comment un attaquant pourrait exploiter cela (étape par étape, sans code d'exploitation)
- L'attaquant s'enregistre en tant que contributeur (ou compromet un compte de contributeur).
- Il ajoute un shortcode avec des attributs ou du contenu malveillant à un article/page ou à une autre zone de contenu qui accepte des shortcodes.
- La charge utile est enregistrée dans la base de données (stockée) et peut sembler inoffensive dans l'éditeur.
- Lorsque un administrateur/éditeur ou un visiteur consulte la page, le plugin rend le shortcode et émet le JavaScript malveillant dans le HTML de la page.
- Le script s'exécute dans le navigateur de la victime et peut effectuer des actions telles que le vol de session, des actions administratives similaires à CSRF, la défiguration, des redirections ou l'exfiltration de données.
Exploitabilité et probabilité
Cette vulnérabilité nécessite un compte de niveau contributeur authentifié. La probabilité dans le monde réel dépend de la facilité avec laquelle les attaquants peuvent obtenir un tel compte sur votre site :
- Inscription ouverte : risque plus élevé - les attaquants peuvent s'inscrire eux-mêmes.
- Inscription modérée : risque modéré (compromission ou ingénierie sociale possible).
- Inscription restreinte : risque plus faible.
Le CVSS publié est de 6,5 (Moyen), mais si les administrateurs prévisualisent régulièrement le contenu des contributeurs, l'impact pratique peut être plus élevé.
Indicateurs de compromission (IoCs) — quoi rechercher
Recherchez sur votre site et dans vos journaux ces signaux courants. Ils ne sont pas exhaustifs mais attraperont de nombreux cas.