WordPress « Comment2Shell » : d’un commentaire anonyme à un web shell

Une faille du cœur de WordPress (4.7 à 7.1) transforme un commentaire anonyme en script exécuté dans la session d’un administrateur, jusqu’à l’installation d’un web shell. Corrigée en 7.1.1.

  • Publié le
  • Mis à jour
  • Lecture2 min
  • CVECVE-2026-93485

Contexte

La CVE-2026-93485 (CVSS 7.1) touche le cœur de WordPress, de la version 4.7 à la 7.1. Elle est corrigée en 7.1.1, 7.0.5 et 6.9.8, avec des correctifs portés jusqu’à la branche 4.7.36. Aucune exploitation n’est signalée à ce jour. Ce portfolio est maintenu sur une version corrigée.

Analyse

  • Un visiteur anonyme publie un commentaire qui contient un saut de ligne à l’intérieur d’un attribut de balise HTML.
  • Lors de la mise en forme pour l’affichage, WordPress coupe la balise en deux : le texte de l’attaquant se retrouve interprété comme un gestionnaire d’événement, exécuté au chargement de la page sans aucune interaction.
  • Si un administrateur connecté ouvre la page, le script s’exécute avec ses droits et peut téléverser une extension contenant un web shell, ce qui donne l’exécution de commandes sur le serveur.
  • Conditions : le commentaire doit être affiché (la modération n’est pas une protection par défaut), un administrateur doit visiter la page, et le thème doit utiliser le formatage concerné.

Remédiation

  • Mettre à jour WordPress, idéalement avec les mises à jour automatiques de sécurité activées.
  • À défaut : désactiver les commentaires ou filtrer les commentaires forgés avec un WAF ou une extension de sécurité.
  • Bonne pratique : ne pas naviguer sur le site public avec une session administrateur ouverte, et bloquer l’édition de fichiers depuis l’administration en production.

À retenir

  • Une XSS stockée devient une exécution de code dès qu’elle s’exécute dans la session d’un administrateur.
  • Côté détection : surveiller l’apparition de nouveaux fichiers PHP dans wp-content/plugins (contrôle d’intégrité Wazuh) et les commentaires contenant des attributs on*.
Retour en haut