| Nom du plugin | ajouterespacegratuit |
|---|---|
| Type de vulnérabilité | CSRF |
| Numéro CVE | CVE-2026-6701 |
| Urgence | Faible |
| Date de publication CVE | 2026-05-04 |
| URL source | CVE-2026-6701 |
Vol de requête intersite (CSRF) enchaîné à un script intersite stocké (XSS) dans addfreespace <= 0.1.3 — Ce que les propriétaires de sites WordPress doivent savoir et faire
Auteur : expert en sécurité de Hong Kong • Date : 2026-05-05
Une vulnérabilité récemment divulguée affectant le plugin WordPress addfreespace (versions <= 0.1.3) a été attribuée à CVE-2026-6701. Le problème est une faiblesse CSRF (Vol de requête intersite) qui peut être enchaînée à une condition XSS (script intersite) stockée. Bien que le CVSS publié soit relativement bas (4.3), le risque pratique peut être matériellement plus élevé lorsque les attaquants utilisent le phishing de masse ou l'ingénierie sociale pour impliquer des utilisateurs privilégiés.
En tant que professionnel de la sécurité basé à Hong Kong, j'explique clairement ce que signifie ce problème, comment il peut être abusé, comment détecter une exploitation possible et les étapes immédiates que les propriétaires de sites, les administrateurs et les équipes d'hébergement doivent prendre.
Résumé exécutif (points clés)
- Le plugin addfreespace (≤ 0.1.3) ne parvient pas à protéger certains points de terminaison modifiant l'état contre le CSRF. Si un utilisateur privilégié (administrateur ou équivalent) est trompé pour visiter une page malveillante ou cliquer sur un lien conçu, un attaquant peut être en mesure de stocker des charges utiles JavaScript sur le site (XSS stocké).
- Un XSS stocké s'exécutant dans un contexte d'administration peut conduire à une prise de contrôle de compte, des portes dérobées persistantes, le vol de données et d'autres conséquences graves.
- À la publication, aucun correctif fourni par le fournisseur n'est disponible. Des atténuations immédiates sont conseillées.
- Les étapes immédiates incluent la désactivation ou la suppression du plugin, la restriction d'accès aux pages d'administration du plugin, l'application de pare-feu ou de correctifs virtuels, le scan des scripts injectés et des entrées de base de données suspectes, et la rotation des identifiants administratifs et des secrets.
Pourquoi le CSRF enchaîné avec le XSS stocké est dangereux (langage simple)
CSRF et XSS sont des problèmes distincts ; ensemble, ils deviennent particulièrement dangereux :
- CSRF: Un attaquant amène un utilisateur connecté à effectuer une action qu'il n'avait pas l'intention de faire (par exemple, en visitant une page web qui soumet un formulaire au site vulnérable). Les actions administratives appropriées de WordPress utilisent des nonces et des vérifications de capacité — lorsque ceux-ci sont manquants, le CSRF est possible.
- XSS stocké: Si un attaquant peut enregistrer du JavaScript dans la base de données et qu'il est ensuite rendu sans échappement approprié, ce script s'exécute dans le contexte du navigateur de quiconque consulte le contenu (y compris les administrateurs).
- Chaînage: Un attaquant peut amener le navigateur d'un utilisateur privilégié à soumettre une requête qui stocke du JavaScript. Lorsque ce contenu stocké est ensuite affiché dans les pages d'administration, le script s'exécute et peut effectuer des actions privilégiées (créer des utilisateurs, exfiltrer des données, installer des portes dérobées).
Même un seul clic d'un administrateur peut suffire à une compromission totale dans ces scénarios enchaînés.
Causes techniques profondes (ce qui a mal tourné)
Les échecs de codage habituels qui permettent cette chaîne sont :
- Protection CSRF manquante
- Pas de nonces WordPress (wp_create_nonce / check_admin_referer) sur les requêtes modifiant l'état.
- Absence de validation du référent/origine pour les actions administratives.
- Vérification des capacités insuffisante
- Points de terminaison qui ne vérifient pas current_user_can() pour le privilège requis.
- Assainissement et échappement insuffisants
- Sauvegarde de HTML/JS fourni par l'utilisateur dans la base de données sans fonctions d'assainissement (par exemple, sanitize_text_field, wp_kses_post) et affichage sans esc_html/esc_attr ou filtrage kses approprié.
- Points de terminaison administratifs exposés en écriture
- Hooks d'action ou points de terminaison AJAX acceptant POST/GET sans vérifications CSRF et de capacité.
Comment une attaque se déroule typiquement (niveau élevé)
- L'attaquant trouve le point de terminaison du plugin vulnérable utilisé par addfreespace.
- Ils créent une page qui soumet un POST ou GET à ce point de terminaison portant une charge utile JavaScript (un vecteur XSS stocké) en utilisant les paramètres attendus par le plugin.
- Un administrateur (ou un autre utilisateur privilégié) visite la page malveillante ou clique sur un lien conçu tout en étant authentifié sur le site.
- Parce que les protections CSRF sont manquantes, le site accepte la requête et sauvegarde le JavaScript fourni par l'attaquant dans la base de données.
- Lorsque la valeur stockée est affichée plus tard sans échappement, le script s'exécute dans le navigateur de l'administrateur.
- Le JavaScript peut alors voler des cookies/tokens, effectuer des requêtes authentifiées (créer des utilisateurs administrateurs, télécharger des plugins), charger des scripts externes et établir une persistance.
Impact — ce que les attaquants peuvent réaliser
Un XSS stocké exécuté dans une session administrative peut permettre :
- Prise de contrôle de compte (vol de cookie ou de token).
- Création de nouveaux administrateurs.
- Installation de portes dérobées persistantes (plugins/thèmes ou tâches planifiées).
- Exfiltration de données (publications, médias, données utilisateur).
- Défiguration du site ou livraison de logiciels malveillants par le biais de visiteurs.
- Mouvement latéral supplémentaire vers les panneaux de contrôle d'hébergement ou les bases de données.
Actions immédiates que vous devez entreprendre (style réponse à incident)
Si vous exécutez des sites utilisant addfreespace (≤ 0.1.3), considérez cela comme urgent :
- Désactivez le plugin maintenant. Connectez-vous à wp-admin et désactivez addfreespace. Si wp-admin est inaccessible, renommez le dossier du plugin via SFTP/SSH (wp-content/plugins/addfreespace → addfreespace.disabled).
- Supprimez le plugin s'il n'est pas nécessaire. Supprimer le code est souvent l'option la plus sûre à court terme jusqu'à ce qu'une version corrigée soit disponible.
- Mettez le site en mode maintenance pendant l'enquête. Réduisez l'exposition pendant que vous scannez et nettoyez.
- Appliquez un pare-feu ou un patch virtuel. Utilisez votre hébergeur ou un pare-feu d'application pour bloquer les demandes vers les points de terminaison administratifs du plugin et pour rejeter les POST contenant des charges utiles de type script. Mettez en œuvre des vérifications de référent/origine lorsque cela est possible.
- Scannez à la recherche de charges utiles injectées et d'entrées de base de données suspectes. Recherchez dans les publications, options, usermeta et autres stockages du contenu de type script (voir la section de détection ci-dessous pour des requêtes d'exemple).
- Faites tourner les identifiants et les secrets. Réinitialisez les mots de passe administratifs, faites tourner les clés API et tous les secrets qui pourraient avoir été exposés.
- Passez en revue les comptes et rôles des utilisateurs. Recherchez des administrateurs inattendus ou des élévations de privilèges.
- Inspectez les journaux du serveur et d'accès. Recherchez des POST ou des demandes suspectes vers les points de terminaison du plugin.
- Restaurez à partir d'une sauvegarde connue comme étant bonne si nécessaire. Si vous trouvez des portes dérobées ou des changements inexpliqués que vous ne pouvez pas nettoyer en toute confiance, restaurez une sauvegarde vérifiée propre.
- Renforcez l'accès administrateur. Appliquez l'authentification multi-facteurs, envisagez une restriction IP pour wp-admin et assurez-vous de politiques de mots de passe robustes.
Comment détecter un XSS stocké à partir de cette vulnérabilité (indicateurs de compromission)
Recherchez :