Les développeurs ont corrigé une vulnérabilité critique dans Essential Addons for Elementor, un plugin WordPress populaire avec plus d’un million d’installations actives.

La faille de sécurité, découverte par Wai Yan Myo Thet, crée un mécanisme permettant à tout utilisateur d’effectuer une attaque par inclusion de fichiers locaux (LFI).

Pire encore, la vulnérabilité peut être exploitée pour réaliser l’exécution de code à distance (RCE) en incluant un fichier contenant du code PHP malveillant qui ne peut normalement pas être exécuté.

Corrections bâclées

Wai Yan Myo Thet a pu signaler la faille aux développeurs du plugin avec l’aide de WPScan.

Après deux correctifs bâclés ou au moins incomplets, la vulnérabilité sous-jacente a été complètement résolue dans la version 5.0.5 d’Essential Addons for Elementor.

Essential Addons for Elementor est présenté comme une technologie qui peut « améliorer votre expérience de création de pages Elementor avec plus de 80 éléments et extensions créatifs ».

Comme expliqué dans un rédaction technique de la vulnérabilité par le spécialiste de la sécurité WordPress Patchstack, la vulnérabilité LFI découle de la façon dont les données d’entrée sont utilisées par le ajax_load_more et ajax_eael_product_gallery les fonctions.

La vulnérabilité n’existe que si des widgets (galerie dynamique, galerie de produits) sont utilisés qui utilisent ces fonctions, selon Patchstack, qui ajoute que l’utilisation de widgets expose un jeton nonce cryptographique.

Patchstack a contribué à avertir les développeurs que leurs deux premières tentatives pour résoudre la vulnérabilité étaient incomplètes.

Widgets intégrés

Dave Jong, CTO de Patchstack, a déclaré La gorgée quotidienne qu’avant sa résolution, la vulnérabilité pouvait être exploitée même par des utilisateurs non authentifiés.

« Le problème central, l’inclusion de fichiers locaux, est en effet quelque chose qui peut être exploité par des utilisateurs non authentifiés », a expliqué Jong. « La seule exigence est que ces widgets aient été intégrés dans une page car un jeton nonce est envoyé (pour empêcher le CSRF) et vérifié dans ces fonctions vulnérables. Sans le jeton nonce, vous ne pouvez pas atteindre le morceau de code vulnérable. »

Dans plusieurs scénarios, un attaquant pourrait exploiter cette vulnérabilité pour atteindre RCE sans avoir à se connecter ou même à créer un compte sur un système ciblé.

« Si, par exemple, le site stocke et conserve des fichiers journaux sur le serveur, et que vous pouvez injecter du code PHP dans ces fichiers journaux, puis inclure ce fichier journal en utilisant la vulnérabilité LFI, le code PHP à l’intérieur du fichier journal sera exécuté, » selon Jong.

Il a poursuivi : « Autre exemple : peut-être qu’un formulaire où les utilisateurs peuvent télécharger leur CV pourrait être exploité de la même manière. Je peux créer un fichier PDF légitime mais y injecter PHP quelque part. Ensuite, si je connais l’emplacement où le fichier PDF est téléchargé, je peux inclure ce fichier PDF et le code PHP sera exécuté.