Click2Shell: Un lien piégé qui force WordPress à installer un thème
Un simple clic sur un lien piégé peut suffire à installer à l’insu d’un administrateur, un thème sur son site WordPress, avant d’exécuter du code via une chaine d’attaque appelée Click2Shell. L’équipe de développement du CMS vient de publier un correctif et recommande fortement de mettre à jour les sites concernés sans attendre.
Ce sont les chercheurs de la société de sécurité pwn.ai qui ont signalé la faille, et baptisé la chaîne d’attaque Click2Shell. À elle seul, le vulnérabilité initiale n’installe qu’un véritable thème que l’attaquant peut choisir. L’équipe de recherche en sécurité a toutefois démontré qu’elle pouvait être combinée avec une faiblesse distincte dans un thème WordPress pour exécuter le propre code de l’attaquant sur le serveur.
Celle-ci devient alors bien plus dangereuse lorsqu’elle est combinée à cette seconde vulnérabilité. Un administrateur peut initier cette attaque malgré lui en ouvrant simplement une adresse conçue à cet effet.
Les développeurs de WordPress ont corrigé le problème le 17 septembre avec la version 7.1.1. Ils ont aussi rétroporté le correctif sur les anciennes branches prises en charge jusqu’à la version 4.7.
Voyons donc un peu plus en détails le fonctionnement de cette chaine d’attaque et les deux vulnérabilités distinctes qui la compose.
Comment fonctionne la faille appelée Click2Shell?
La faille de base repose sur le fait que deux parties de WordPress lisent le même lien différemment. Les pirates peuvent exploité cette différence pour se faire passer comme des acteurs légitimes.
Tout d’abord, le répertoire officiel de WordPress.org traite la valeur du lien piégé comme un nom de thème ordinaire et renvoie un véritable thème. En tant que tel, cela devrait mener vers un thème parfaitement légitime, et ne poser aucun problème.
Le navigateur de l’administrateur réutilise toutefois le texte d’origine, la ponctuation et tout le code interne destiné à sélectionner un élément sur la page. Les caractères que l’attaquant ajoute au lien envoient donc ce code au bouton Installer, avant que le propre script de WordPress clique dessus.
Si l’administrateur est déjà connecté, sa session fournit alors l’autorisation et le jeton de sécurité dont l’installation a besoin. L’attaquant n’a dons pas besoin de fournir ni l’un, ni l’autre.
Le thème utilisé par pwn.ai (Mobile Repair Zone) comportait toutefois une deuxième vulnérabilité. Il utilisait un gestionnaire d’arrière-plan qui récupérait une adresse web depuis la requête. Il téléchargeait alors un package et exécutait son code, sans vérifier l’autorisation du visiteur ni aucun jeton de sécurité. Exécuté immédiatemment après l’installation forcée, ce gestionnaire a lancé l’exécution du code de l’attaquant sur le serveur.
C’est donc deux menaces distinctes qui se combinent au sein d’une même chaine d’attaque. C’est la combinaison des deux qui la rend aussi redoutable, et risque de causer des dégâts très importants sur les sites compromis. Pour plus de clarté, nous expliquerons maintenant un peu plus en détails le fonctionnement de chacune des deux failles.
Un seul clic suffit si l’administrateur est déjà connecté à son site
Le 22 août dernier, des chercheurs de pwn.ai ont signalé la faille qui était présente dans le CMS de WordPress depuis la version 6.0. Celle-ci exige que différentes conditions soient remplies pour pouvoir être exploitée. Voici les principales conditions identifiées par les chercheurs:
- L’administrateur doit être connecté à son site WordPress.
- Il doit ensuite ouvrir l’adresse via un lien piégée.
- Le navigateur interprète alors les caractères intégrés différemment du répertoire de thèmes de WordPress.org.
- Le JavaScript intégré de WordPress cible le bouton d’installation désiré par les attaquants et déclenche lui-même l’action.
- La session active de l’administrateur fournit les autorisations et le jeton de sécurité nécessaires.
- L’attaquant peut donc accéder au tableau de bord administrateur sans avoir besoin de récupérer ce jeton.
Il existe une autre limite identifiée par pwn.ai. La faille permet uniquement d’installer un thème disponible sur WordPress.org, pas de l’activer instantanément. Le site ne change pas immédiatement de design, puisque le thème reste désactivé.
Une seconde faille peut mener à l’exécution de code malveillant
Les chercheurs ont combiné Click2Shell avec une seconde vulnérabilité présente dans un thème afin d’exécuter du code arbitraire sur le serveur
En effet, Click2Shell ne permet pas à lui seul d’exécuter du code arbitraire sur le serveur. Pwn.ai a utilisé le thème Mobile Repair Zone (version 2.5.4), qui est disponible sur le répertoire officiel. WordPress peut charger le code PHP d’un thème inactif lors du lancement d’un aperçu, dans les options de personnalisation.
Ce thème contenait justement un gestionnaire qui ne vérifiait ni les droits de l’utilisateur, ni le jeton de sécurité. Les chercheurs ont donc réussi à lui transmettre l’adresse d’un plugin malveillant. Le serveur a ensuite téléchargé ce malware avant d’exécuter son code PHP.
Pwn.ai attribue un score CVSS de 7,1 à l’installation forcée seule. Il accorde toutefois une note de 9,6 à la chaîne complète allant jusqu’à l’exécution de code. Il s’agit donc d’une menace très grave, contre laquelle il est essentiel de se prémunir.
Pour conclure sur la menace posée par Click2Shell pour les sites WordPress
Les sites WordPress sont régulièrement exposés à des cybermenaces de différents types et niveaux de gravité. Click2Shell se démarque toutefois par combien critique est la menace, pour aussi peu d’efforts nécessaires de la part des attaquants.
Heureusement, l’équipe de développement du CMS a publié un correctif de sécurité pour palier à la menace. On vous recommande fortement d’effectuer cette mise à jour dès maintenant, afin de protéger votre site de Click2Shell. Assurez-vous également de suivre l’actualité concernant la sécurité WordPress, afin de rester informer sur les menaces à venir.
Nous espérons que cet article vous a plus et vous a aider à protéger votre site WordPress contre la menace baptisée Click2Shell. Si c’est le cas, nous vous invitons à consulter dès maintenant nos autres articles et tutoriels sur tout ce qui concerne WordPress.