Click2Shell transforme la visite d’une page d’administration WordPress en installation forcée d’un thème

Faille Click2Shell WordPress (CVSS 7,1) force l’installation d’un thème via navigateur admin et permet exécution code (9,6). Correctif 7.1.1 disponible.

Texte généré par intelligence artificielle, publié sans relecture humaine. Transparence IA

Click2Shell transforme la visite d’une page d’administration WordPress en installation forcée d’un thème
Vulnérabilités

Image d’illustration générée par IA

Une vulnérabilité récemment corrigée du cœur de WordPress permet à un attaquant de contraindre le navigateur d’un administrateur authentifié à installer et prévisualiser un thème choisi dans le répertoire officiel WordPress.org. Les chercheurs de pwn.ai ont baptisé la technique ainsi obtenue Click2Shell.

La faille du cœur de WordPress est considérée comme présentant une gravité élevée, avec un score CVSS de 7,1. Elle ne permet pas directement l’envoi arbitraire de fichiers ni l’exécution de code. Toutefois, les chercheurs ont démontré qu’en la combinant à une faille distincte présente dans un thème WordPress, il était possible d’obtenir une exécution de code côté serveur, faisant passer le score de la chaîne complète à un niveau critique de 9,6.

WordPress a corrigé le problème dans la version 7.1.1, publiée le 17 septembre, et a distribué les mises à jour de sécurité correspondantes pour les branches prises en charge jusqu’à WordPress 4.7. À ce jour, rien n’indique que des attaquants aient exploité Click2Shell dans la nature.

Une URL malveillante pousse WordPress à cliquer sur son propre bouton d’installation

Click2Shell exploite le traitement incohérent d’une même valeur d’URL contrôlée par l’attaquant, entre le répertoire de thèmes WordPress.org et le code JavaScript exécuté dans le navigateur de l’administrateur.

Le répertoire de thèmes interprète la valeur fournie comme un nom de thème classique et renvoie un thème légitime hébergé sur WordPress.org. Le code exécuté dans le navigateur réutilise ensuite cette valeur, y compris les signes de ponctuation ajoutés par l’attaquant, pour identifier un élément de la page.

Cette manipulation amène le code à sélectionner le bouton Install du thème. Le JavaScript de WordPress déclenche alors lui-même le bouton, sans que l’administrateur ait besoin de cliquer manuellement sur le bouton d’installation.

Le navigateur fournit tous les éléments nécessaires pour autoriser l’opération, puisque la victime est déjà connectée avec des privilèges d’administrateur. Il s’agit notamment de la session WordPress authentifiée et du jeton de sécurité utilisé pour approuver l’installation. L’attaquant n’a donc pas besoin de voler des identifiants, de deviner le jeton ou de s’authentifier directement sur le site.

Une interaction de l’utilisateur reste toutefois nécessaire. La cible doit être connectée en tant qu’administrateur et ouvrir le lien spécialement conçu.

Cette condition limite l’attaque par rapport à un exploit distant totalement non authentifié, mais elle rend également l’URL exploitable dans le cadre d’hameçonnages, de messages privés, de leurres présentés comme des demandes d’assistance ou d’autres méthodes visant à atteindre les administrateurs d’un site.

Un thème inactif peut tout de même exposer du PHP exécutable

L’installation forcée n’active pas le thème choisi. Le site public conserve donc son apparence actuelle, et les administrateurs peuvent ne constater aucune indication visuelle immédiate de l’apparition d’un autre thème sur le serveur.

Mais inactif ne signifie pas inoffensif.

WordPress peut charger et exécuter le PHP d’un thème inactif lors de la génération d’un aperçu au moyen du Customizer. Click2Shell exploite ce comportement : après avoir forcé l’installation, l’attaque passe par le traitement de l’aperçu, où le code vulnérable du thème peut devenir accessible sans modifier le thème actif du site.

Cette distinction détermine l’impact concret de la vulnérabilité. La faille du cœur de WordPress installe un thème authentique choisi par l’attaquant dans le répertoire officiel. À elle seule, elle ne permet ni d’envoyer un fichier ZIP de thème arbitraire ni d’introduire directement du PHP écrit par l’attaquant.

Pour obtenir une exécution de code côté serveur, le thème sélectionné doit présenter une autre faiblesse exploitable. Click2Shell permet de placer ce thème sur la cible et d’amener WordPress à traiter son code.

Mobile Repair Zone a permis de finaliser la chaîne de preuve de concept

Pour leur démonstration, les chercheurs de pwn.ai ont sélectionné le thème Mobile Repair Zone. Un gestionnaire d’arrière-plan vulnérable de ce thème acceptait une adresse web fournie dans une requête, téléchargeait un paquet depuis l’emplacement indiqué et exécutait le code qu’il contenait.

Le gestionnaire ne vérifiait pas que l’émetteur de la requête disposait des autorisations nécessaires. Il n’exigeait pas non plus de jeton de sécurité.

Ces contrôles absents ont rendu le gestionnaire exploitable comme seconde étape de l’attaque. Dans un premier temps, Click2Shell amenait WordPress à installer Mobile Repair Zone depuis WordPress.org. WordPress chargeait ensuite le thème inactif lors de la génération d’un aperçu dans le Customizer. Une fois son gestionnaire vulnérable accessible, l’attaquant pouvait lui demander de récupérer et d’exécuter du code qu’il contrôlait sur le serveur.

Il s’agit d’un exploit en chaîne, et non d’une faille d’exécution de code à distance autonome dans le cœur de WordPress. Les deux composants jouent des rôles distincts :

  1. Click2Shell exploite la session d’un administrateur pour installer et prévisualiser un thème légitime.
  2. La vulnérabilité du thème récupère un paquet distant et en exécute le contenu sans contrôles d’autorisation suffisants.

La note critique de 9,6 s’applique à ce parcours complet. La faille d’installation du cœur de WordPress reçoit à elle seule une note de 7,1.

WordPress 6.0 à la veille des versions corrigées est concerné

La vulnérabilité a été confirmée dans WordPress 6.0 et dans les versions ultérieures jusqu’aux éditions précédant immédiatement la correction. La version principalement corrective est WordPress 7.1.1.

WordPress a également publié des mises à jour de sécurité équivalentes pour les branches prises en charge concernées, avec une couverture remontant jusqu’à la version 4.7. Les administrateurs ne doivent pas nécessairement faire migrer toutes leurs installations vers la branche fonctionnelle 7.1, mais ils doivent appliquer la mise à jour de sécurité correspondante à la branche utilisée.

Les sites configurés pour accepter automatiquement les mises à jour de sécurité du cœur de WordPress devraient recevoir le correctif automatiquement. Les exploitants doivent néanmoins vérifier la version installée plutôt que de supposer que la mise à jour s’est correctement déroulée, notamment lorsque les permissions de fichiers, les contrôles de déploiement ou les paramètres de gestion des mises à jour peuvent interrompre l’installation automatique.

WordPress n’a pas publié sa propre classification de gravité pour Click2Shell. Aucun identifiant CVE n’a été attribué à ce jour, même si pwn.ai a indiqué que WordPress prévoyait d’en ajouter un.

Aucun indicateur public de compromission n’a été communiqué. Le format de l’URL concernée et les autres éléments utiles à la détection ne sont pas non plus connus d’après les informations publiées.

La mise à jour du cœur bloque le chemin d’installation forcée

Les administrateurs doivent installer WordPress 7.1.1 ou la mise à jour de sécurité correspondante pour leur branche prise en charge. La mise à jour du cœur bloque la technique d’installation et de prévisualisation démontrée, que Mobile Repair Zone ou un autre thème potentiellement vulnérable soit présent ou non.

Ni WordPress ni pwn.ai n’ont fourni de mesure de contournement technique distincte pour les systèmes qui ne peuvent pas être corrigés immédiatement. Tant que la mise à jour n’est pas appliquée, les administrateurs doivent éviter d’ouvrir des liens non fiables lorsqu’ils sont connectés à WordPress, en particulier les URL présentées comme des ressources de gestion du site, de thèmes ou d’assistance.

Cette précaution ne fait que réduire l’exposition. Elle ne supprime pas le comportement vulnérable.

Les défenseurs peuvent également examiner les thèmes installés à la recherche d’ajouts inattendus, y compris les thèmes qui restent inactifs. Click2Shell n’ayant pas besoin d’activer le thème sélectionné, surveiller uniquement les changements du thème actif ne permettrait pas de détecter le comportement démontré par les chercheurs. Toute installation de thème inexpliquée doit conduire à examiner l’activité des administrateurs ainsi que le traitement ultérieur dans le Customizer.

Click2Shell n’est pas la même chose que wp2shell

Click2Shell fait suite à une autre faille du cœur de WordPress découverte par pwn.ai et corrigée en août. Cette vulnérabilité antérieure concernait l’écran de connexion et pouvait elle aussi être combinée à d’autres faiblesses pour parvenir à une exécution de code, même si WordPress avait décrit son risque de manière plus circonscrite que les chercheurs.

Une autre vulnérabilité du cœur de WordPress divulguée en juillet, appelée wp2shell, n’a aucun lien avec les travaux de pwn.ai sur Click2Shell. Ses conditions d’exploitation sont plus sévères : wp2shell ne requiert ni authentification ni clic de la victime, et la CISA l’a inscrite parmi les vulnérabilités exploitées lors d’attaques réelles.

Aucun élément comparable ne fait état d’une exploitation active de Click2Shell. Le fait qu’un administrateur authentifié doive ouvrir une URL malveillante constitue une condition préalable importante, mais la preuve de concept montre comment cette seule action peut franchir plusieurs frontières de sécurité : de la sélection d’un élément côté navigateur à l’installation du thème, puis au chargement de PHP lors de la prévisualisation et, finalement, à l’exécution côté serveur lorsqu’un second composant vulnérable est présent.

À lire aussi

Sources

Cet article est une réécriture originale fondée sur les sources ci-dessous.

Sujets liésClick2Shellfaille WordPresssécurité WordPressinstallation thème forcéeexécution de codeCustomizer WordPressmise à jour WordPress
Retour à l'accueil