Le 23 février 2021, l’équipe de Wordfence Threat Intelligence a divulgué de manière responsable un ensemble de vulnérabilités de Cross-Site Scripting stockées dans Elementor, un plugin WordPress qui «est maintenant activement installé et utilisé sur plus de 7 millions de sites Web». selon une annonce récente sur le blog Elementor. Ces vulnérabilités permettaient à tout utilisateur capable d’accéder à l’éditeur Elementor, y compris les contributeurs, d’ajouter du JavaScript aux publications. Ce JavaScript serait exécuté si le message était consulté, modifié ou prévisualisé par tout autre utilisateur du site, et pourrait être utilisé pour prendre le contrôle d’un site si la victime était un administrateur.

Étant donné qu’Elementor dispose d’une méthode de contact spécifique pour les rapports de sécurité, nous avons été en mesure de fournir une divulgation complète immédiatement. Elementor a reconnu la vulnérabilité le lendemain, le 24 février 2021. Un correctif initial a été rendu disponible dans la version 3.1.2 le 2 mars 2021. Cependant, nous vous recommandons de mettre à jour au moins Elementor version 3.1.4, la dernière disponible sur le moment de la rédaction de cet article, car il contient des correctifs supplémentaires pour le problème.

Les utilisateurs de Wordfence Premium ont reçu une règle de pare-feu protégeant contre ces vulnérabilités le 23 février 2021. Les sites exécutant toujours la version gratuite de Wordfence recevront la même protection après 30 jours, le 25 mars 2021.


Description: Scripts intersites stockés authentifiés multiples (XSS)
Plugin concerné: Elementor
Plugin Slug: élémentor
Versions concernées:
ID CVE: En attente
Score CVSS: 6.4 Moyen
Vecteur CVSS: CVSS: 3.1 / AV: N / AC: L / PR: L / UI: N / S: C / C: L / I: L / A: N
Version entièrement corrigée: 3.1.4

Elementor est un plugin d’édition très populaire qui permet aux créateurs de contenu, y compris aux contributeurs, de concevoir visuellement des sites Web en utilisant des «éléments» qui peuvent être ajoutés à n’importe quel emplacement sur la page en cours de création.

Beaucoup de ces éléments offrent la possibilité de définir une balise HTML pour le contenu à l’intérieur. Par exemple, l’élément «En-tête» peut être configuré pour utiliser les balises H1, H2, H3, etc. afin d’appliquer différentes tailles d’en-tête via le header_size paramètre. Malheureusement, pour six de ces éléments, les balises HTML n’ont pas été validées côté serveur, il était donc possible pour tout utilisateur capable d’accéder à l’éditeur Elementor, y compris les contributeurs, d’utiliser cette option pour ajouter du JavaScript exécutable à un article ou une page via une demande élaborée.

Une image montrant le menu déroulant de l'élément ou de la balise d'en-tête

Étant donné que les articles créés par les contributeurs sont généralement examinés par les éditeurs ou les administrateurs avant leur publication, tout JavaScript ajouté à l’un de ces articles sera exécuté dans le navigateur du réviseur. Si un administrateur examinait une publication contenant du JavaScript malveillant, sa session authentifiée avec des privilèges de haut niveau pourrait être utilisée pour créer un nouvel administrateur malveillant ou pour ajouter une porte dérobée au site. Une attaque sur cette vulnérabilité pourrait conduire à une prise de contrôle du site.

Selon l’élément, le JavaScript exécutable peut être ajouté de plusieurs manières.

Par exemple, l’élément “Column”, l’un des composants Elementor les plus élémentaires, accepte un html_tag paramètre. Ce paramètre était sorti sans échappement et pouvait être défini sur un script en ligne, un script avec une source distante, ou pouvait même être attaqué à l’aide de XSS basé sur des attributs.

Les éléments Accordion, Icon Box et Image Box étaient également vulnérables à ce type d’attaque, bien que les noms des paramètres vulnérables varient en fonction du composant.

Échapper à la sortie n’est pas toujours suffisant

Échapper à la sortie de la balise HTML choisie aurait pu être suffisant pour empêcher certains de ces composants d’être exploitables, et en effet, l’élément «Section» et l’élément «Toggle» souffraient de défauts similaires mais n’ont pas pu être exploités car ils échappaient à leur choix Les balises HTML, et parce que tout contenu supplémentaire était enveloppé dans plusieurs autres niveaux de balises.

Malheureusement, cependant, échapper à la sortie n’est pas toujours suffisant pour empêcher les exploits. Par exemple, pour l’élément «En-tête», échapper à la sortie du header_size n’aurait pas été suffisant pour empêcher le Cross-Site Scripting car le texte de l’en-tête était immédiatement imbriqué dans le header_size Mots clés. En tant que tel, il était possible de définir le header_size paramètre à script et ajoutez le JavaScript réel à exécuter au texte de l’en-tête. L’élément «Divider» était également vulnérable à ce type d’attaque via le html_tag paramètre car le texte intérieur a été imbriqué immédiatement dans le html_tag.

C’est un excellent exemple de la raison pour laquelle il est important de valider l’entrée en plus d’échapper à la sortie. L’application d’une liste de balises HTML autorisées côté serveur plutôt que seulement côté client empêcherait l’exploitation de ce type de vulnérabilité. En effet, c’est l’approche utilisée par la version corrigée pour corriger le problème.

Chronologie

23 février 2021 – Wordfence Threat Intelligence publie une règle de pare-feu pour les utilisateurs Premium et fournit une divulgation complète au contact de sécurité Elementor.
24 février 2021 – Elementor reconnaît la divulgation et commence à travailler sur un correctif.
2 mars 2021 – Un patch initial devient disponible en version 3.1.2.
8 mars 2021 – Des correctifs supplémentaires sont mis en place dans la version 3.1.4.
25 mars 2021 – La règle de pare-feu devient disponible pour les utilisateurs gratuits.

Conclusion

Dans l’article d’aujourd’hui, nous avons détaillé les vulnérabilités stockées de Cross-Site Scripting (XSS) présentes dans Elementor, qui pourraient être exploitées via l’élément Column ainsi que les composants Accordion, Icon Box, Image Box, Heading et Divider. Ces vulnérabilités ont été corrigées dans la version 3.1.4, et nous recommandons vivement à tous les utilisateurs d’Elementor de mettre à jour la dernière version disponible, qui est la 3.1.4 au moment de la publication.

Wordfence Premium les utilisateurs sont protégés contre ces vulnérabilités depuis le 23 février 2021. Les sites exécutant toujours la version gratuite de Wordfence bénéficieront de la même protection 30 jours plus tard, le 25 mars 2021.

Si vous connaissez un ami ou un collègue qui utilise Elementor, nous vous recommandons de lui transmettre cet avis, car ces vulnérabilités peuvent être utilisées pour la prise de contrôle du site. Bien que ces vulnérabilités nécessitent des autorisations de niveau contributeur pour être exploitées, l’immense popularité d’Elementor signifie qu’il y aura probablement de nombreuses configurations vulnérables dans la nature. En tant que tel, nous vous recommandons de traiter ces vulnérabilités avec une urgence supérieure à la normale.


Source link