600 000 sites WordPress touchés par la vulnérabilité critique du plugin RCE

wordpress

Essential Addons for Elementor, un plugin WordPress populaire utilisé dans plus d’un million de sites, s’est avéré avoir une vulnérabilité critique d’exécution de code à distance (RCE) dans la version 5.0.4 et les versions antérieures.

La faille permet à un utilisateur non authentifié d’effectuer une attaque par inclusion de fichier local, tel qu’un fichier PHP, pour exécuter du code sur le site.

« La vulnérabilité d’inclusion de fichier local existe en raison de la façon dont les données d’entrée de l’utilisateur sont utilisées dans la fonction d’inclusion de PHP qui fait partie des fonctions ajax_load_more et ajax_eael_product_gallery. » explique les chercheurs de PatchStack qui ont découvert la vulnérabilité.

La seule condition préalable à l’attaque est que le site ait les widgets « galerie dynamique » et « galerie de produits » activés afin qu’une vérification sans jeton soit présente.

Exemple de code qui déclenche la faille
Exemple de code qui déclenche la faille
Source : Pile de patchs

Deux tentatives de correctifs infructueuses

Le chercheur Wai Yan Muo Thet a découvert la vulnérabilité le 25 janvier 2022 et le développeur du plugin connaissait déjà son existence à ce moment-là.

En fait, l’auteur avait publié la version 5.0.3 pour résoudre ce problème en appliquant une fonction « sanitize_text_field » sur les données d’entrée de l’utilisateur. Cependant, cette désinfection n’empêche pas l’inclusion de charges utiles locales.

La deuxième tentative était la version 5.0.4, qui a ajouté la fonction « sanitize_file_name » et a tenté de supprimer les caractères spéciaux, les points, les barres obliques et tout ce qui pouvait être utilisé pour remplacer l’étape de nettoyage du texte.

Fonction pour nettoyer le champ de texte
Fonction pour nettoyer le champ de texte
Source : Pile de patchs

C’était la version qui Patchstack testé et trouvé vulnérable, ils ont donc informé le développeur que le correctif n’avait pas suffisamment atténué le problème.

Finalement, l’auteur a publié la version 5.0.5 qui implémentait la fonction « realpath » de PHP, empêchant les résolutions de noms de chemin malveillants.

Mettre à jour et atténuer

Cette version est sortie la semaine dernière, le 28 janvier 2022, et à ce jour n’a été installée qu’environ 380 000 fois selon WordPress’ télécharger les statistiques.

Avec le plugin installé dans plus d’un million de sites WordPress, cela signifie que plus de 600 000 sites n’ont pas encore appliqué la mise à jour de sécurité.

Si vous faites partie des nombreux utilisateurs d’Essential Addons for Elementor, vous pouvez obtenir la dernière version à partir d’ici ou appliquez la mise à jour directement depuis le tableau de bord WP.

Pour empêcher les acteurs d’exploiter les failles d’inclusion de fichiers locaux même lorsqu’elles ne peuvent pas être directement atténuées, suivez ces étapes :

  • Enregistrez vos chemins de fichiers dans une base de données sécurisée et attribuez un identifiant à chacun d’entre eux.
  • Utilisez des fichiers de liste d’autorisation vérifiés et sécurisés et ignorez tout le reste.
  • N’incluez pas de fichiers susceptibles d’être compromis sur un serveur Web, mais utilisez plutôt une base de données.
  • Faire en sorte que le serveur envoie automatiquement les en-têtes de téléchargement au lieu d’exécuter les fichiers dans un répertoire spécifié.