Le plugin WordPress SiteOrigin Widgets Bundle avec plus de 600 000 installations a corrigé une vulnérabilité de script intersite (XSS) stockée et authentifiée qui pourrait permettre aux attaquants de télécharger des fichiers arbitraires et d'exposer les visiteurs du site à des scripts malveillants.
Plugin du pack de widgets SiteOrigin
Le plugin SiteOrigins Widgets, avec +600 000 installations actives, permet d'ajouter facilement une multitude de fonctions de widgets telles que des curseurs, des carrousels, des cartes, de modifier la façon dont les articles de blog sont affichés et d'autres éléments de page Web utiles.
Vulnérabilité de script intersite stockée
Une vulnérabilité Cross-Site Scripting (XSS) est une faille qui permet à un pirate informatique d'injecter (télécharger) des scripts malveillants. Dans les plugins WordPress, ces types de vulnérabilités proviennent de défauts dans la façon dont les données entrées ne sont pas correctement nettoyées (filtrées pour les données non fiables) et également d'une sécurisation incorrecte des données de sortie (appelées données d'échappement).
Cette vulnérabilité XSS particulière est appelée Stored XSS car l'attaquant est capable d'injecter le code malveillant sur le serveur. Selon l’Open Worldwide Application Security Project (OWASP), une organisation à but non lucratif, la possibilité de lancer une attaque directement depuis le site Web est particulièrement préoccupante.
OWASP décrit la menace XSS stockée :
« Ce type d'exploit, connu sous le nom de Stored XSS, est particulièrement insidieux car l'indirection provoquée par le magasin de données rend plus difficile l'identification de la menace et augmente la possibilité que l'attaque affecte plusieurs utilisateurs. "
Dans une attaque XSS, où un script a été injecté avec succès, l'attaquant envoie un script nuisible à un visiteur du site sans méfiance. Le navigateur de l'utilisateur, parce qu'il fait confiance au site Web, exécute le fichier. Cela peut permettre à l'attaquant d'accéder aux cookies, aux jetons de session et à d'autres données sensibles du site Web.
Description de la vulnérabilité
La vulnérabilité est due à des défauts dans la désinfection des entrées et la fuite des données.
La page des développeurs WordPress pour la sécurité explique la désinfection :
« La désinfection des données d'entrée est le processus de sécurisation/nettoyage/filtrage des données d'entrée. La validation est préférable à la désinfection car la validation est plus spécifique. Mais lorsqu’il n’est pas possible d’être « plus précis », la désinfection est la meilleure solution. »
L'échappement de données dans un plugin WordPress est une fonction de sécurité qui filtre les sorties indésirables.
Ces deux fonctions nécessitaient une amélioration dans le plugin SiteOrigins Widgets Bundle.
Wordfence a décrit la vulnérabilité :
"Le plugin SiteOrigin Widgets Bundle pour WordPress est vulnérable aux scripts intersites stockés via le paramètre onclick dans toutes les versions jusqu'à la 1.58.3 incluse en raison d'une vérification insuffisante des entrées et de l'échappement des sorties."
Cette vulnérabilité nécessite une authentification avant de pouvoir être exécutée, ce qui signifie que l'attaquant a besoin d'au moins un accès de niveau contributeur pour pouvoir lancer une attaque.
Action recommandée:
La vulnérabilité s'est vu attribuer un niveau de gravité CVSS moyen, avec une note de 6,4/10. Les utilisateurs du plugin devraient envisager de mettre à jour vers la dernière version, qui est la version 1.58.5, bien que la vulnérabilité ait été corrigée dans la version 1.58.4.
Lisez l'avis de vulnérabilité de Wordfence :
SiteOrigin Widgets Bundle <= 1.58.3 – Scripts intersites stockés authentifiés (Contributeur+)