RIPS Technologies a découvert un problème avec WordPress et le plug-in de commerce électronique WooCommerce créé par Automattic. Selon les statistiques officielles, cette solution a été téléchargée plus de quatre millions de fois et compte à peu près le même nombre d’installations actives.
Les chercheurs expliquent qu’il y a deux problèmes ici. Le premier problème est que, lorsque le plug-in est installé pour WordPress, qui utilise des rôles différents pour les utilisateurs, il ne crée pas son propre système d’authentification, mais utilise le système de privilèges CMS existant. Pour ce faire, le plug-in crée un nouveau rôle avec les nouvelles fonctionnalités de WordPress, puis limite son interaction avec les paramètres du CMS et les autres utilisateurs via ses propres fonctions.
Ainsi, lors de l’installation de WooCommerce, un nouveau rôle est créé pour Shop Manager («store manager»), qui dispose des droits edit_users. Cette autorisation permet à l’utilisateur de modifier des publications ainsi que les profils de tout autre utilisateur de WordPress, y compris de l’administrateur.
Il semblerait que les développeurs de WooCommerce aient fourni une fonction qui empêche les utilisateurs ayant ce rôle d’interférer avec les profils des administrateurs. Mais en raison d’un défaut dans le fonctionnement du système de gestion des privilèges des plug-ins, lorsque WooCommerce est désactivé, la fonction de restriction des «gestionnaires de magasin» cesse de fonctionner et les utilisateurs dotés de ce rôle peuvent modifier librement les comptes d’autres utilisateurs.
Par conséquent, le seul moyen fiable de désactiver le plug-in est de le désactiver par l’administrateur et de supprimer tous ses fichiers. Et voici le deuxième problème.
Le fait est que les analystes de RIPS Technologies ont découvert un bug lié à la suppression des fichiers WooCommerce de la version 3.4.5 et inférieure. Il s’est avéré que les utilisateurs disposant des droits de Shop Manager peuvent supprimer n’importe quel fichier du plug-in, y compris ceux qui sont essentiels à son travail. Par la suite, le plug-in cessera de fonctionner de manière prévisible, WordPress le désactivera automatiquement et la situation reviendra à ce qui précède lorsqu’un utilisateur ayant le rôle de gestionnaire de boutique peut modifier les profils de n’importe quel utilisateur.
Les chercheurs expliquent que dans une telle situation, l’attaquant n’aura pas de difficulté à capturer le compte administrateur, et donc à contrôler l’ensemble du site. La vidéo ci-dessous illustre une combinaison des deux problèmes de l’affaire.
Les experts soulignent que, pour pouvoir utiliser ce système avec succès, un attaquant doit avoir accès à un compte ayant le rôle de directeur de boutique. Toutefois, selon les chercheurs, ceci est réalisable grâce aux vulnérabilités XSS ou aux attaques de phishing.
Les développeurs WooCommerce ont déjà éliminé le problème en publiant une nouvelle version du plugin ( 3.4.6 ). La mise à jour automatique des plug-ins n’étant pas du tout incluse, les experts recommandent aux utilisateurs de rechercher les mises à jour et de s’assurer qu’ils fonctionnent avec les dernières versions de WooCommerce.