PHP Everywhere : 30 000 sites WordPress vulnérables
Des chercheurs en sécurité de chez Wordfence ont découvert trois failles de sécurité critiques au sein du plugin "PHP Everywhere", utilisé par environ 30 000 sites WordPress dans le monde.
Tout d'abord, il faut savoir que le plugin PHP Everywhere permet aux webmasters de sites WordPress d'insérer du code PHP facilement au sein de pages, d'articles, ou encore dans la barre latérale du site, voire même dans un bloc via l'éditeur Gutenberg. Ce plugin n'est pas le plus populaire des plugins WordPress, mais il compte tout de même 30 000 installations actives, ce qui n'est pas rien.
Le 4 janvier 2022, les chercheurs en sécurité de Wordfence ont découvert trois failles de sécurité de type "exécution de code à distance" pouvant être exploitées sur WordPress simplement en disposant d'un compte avec le minimum de droits (en fonction de la vulnérabilité). Autrement dit, les sites qui autorisent l'inscription et qui utilisent PHP Everywhere sont vulnérables. Enfin, à moins d'avoir installé la dernière version du plugin.
Voici les trois références CVE correspondantes et associées à un score CVSS v3 de 9.9 :
- CVE-2022-24663 – Exécution de code à distance sur le site WordPress, exploitable par les abonnés grâce à une requête qui contient le paramètre "shortcode".
- CVE-2022-24664 – Exécution de code à distance sur le site WordPress, exploitable par les contributeurs via la fonction de création d'un nouvel article
- CVE-2022-24665 – Exécution de code à distance sur le site WordPress, exploitable par les contributeurs qui ont les droits pour modifier les articles et ajouter les blocs "PHP Everywhere". Par défaut, PHP Everywhere n'est pas limité seulement aux admins du site, ce qui est une erreur de configuration.
Vous l'aurez compris, la première vulnérabilité est beaucoup plus facile à exploiter, car elle ne nécessite pas de droits spécifiques sur le site. Il faut seulement disposer d'un compte pour au final probablement devenir admin en exploitant cette faille.
Depuis le 10 janvier 2022, une mise à jour du plugin PHP Everywhere (version 3.0.0) est disponible afin de combler ces failles de sécurité. D'ailleurs, le développeur est passé sur un nouveau numéro de version majeur, car il a dû procéder à la réécriture d'une grande partie du code de son plugin. Pour le moment, environ 50% des sites ont effectué la mise à jour vers cette nouvelle version. Il faut savoir que la version 3.0.0 supporte uniquement les bouts de code via l'éditeur Gutenberg (en mode blocs) donc si vous utilisez l'éditeur classique sur votre site, il faut trouver une alternative, car il y a peu de chances que le développeur travaille sur le sujet (cet éditeur étant plutôt en fin de vie).
Personnellement, je ne suis pas fan de ce genre de plugin qui permet d'injecter du code PHP à n'importe quel endroit du site, car je trouve que cela ouvre la porte à de nombreux problèmes. Cela est d'autant plus vrai lorsque le plugin contient des failles de sécurité.
— plutôt que d’injecter un script PHP dans la page à l’aide de PHP everyWhere mieux vaut le convertir en un shortcode