Comprendre les vulnérabilités RCE des plugins WordPress
- Imaginez que vous confiez les commandes de votre site web à quelqu'un en qui vous n'avez pas confiance - c'est le risque des vulnérabilités RCE dans WordPress.
- Les attaquants peuvent modifier le contenu du site web, injecter du contenu indésirable et diffuser des logiciels malveillants, infectant ainsi les visiteurs du site.
- Pour éviter toute erreur, il est essentiel de s'assurer que tous vos plugins et thèmes sont compatibles avec la nouvelle version de PHP avant de procéder à la mise à jour.
WordPress est un système de gestion de contenu (CMS) populaire qui alimente plus de 40 % de l'internet. Il est connu pour sa flexibilité et son vaste écosystème de plugins. Cependant, ces plugins, tout en ajoutant des fonctionnalités, peuvent introduire des vulnérabilités en matière de sécurité. Ces vulnérabilités peuvent être dues à des erreurs de codage, à des bibliothèques obsolètes ou à un manque de maintenance. Il est essentiel de comprendre les vulnérabilités des plugins WordPress, les risques associés et les défis liés à la mise à jour des plugins pour maintenir un site WordPress sécurisé.
Dans cet article, nous allons explorer les vulnérabilités d'exécution de code à distance (RCE) dans les plugins WordPress qui permettent aux attaquants d'injecter et d'exécuter du code malveillant à distance sur votre site web.
Risques de sécurité posés par les vulnérabilités RCE dans WordPress
Prise de contrôle complète d'un site web : Exécution de code à distance permet aux attaquants d'exécuter n'importe quelle commande sur le serveur, ce qui leur permet de prendre le contrôle total du site web. Cela signifie qu'ils peuvent modifier le contenu, installer des logiciels malveillants, rediriger les visiteurs vers des sites malveillants, voire perdre le contrôle du site web.
Vol de données : Les attaquants peuvent accéder à des informations sensibles stockées sur votre site web et les voler, comme les données des clients, les identifiants de connexion ou les dossiers financiers.
Défiguration de sites web : En contrôlant le serveur, les attaquants peuvent modifier le contenu du site web et afficher leurs propres messages.
Spam SEO : Les pirates injectent souvent du contenu et des liens de spam dans les sites web vulnérables, ce qui nuit à leur classement dans les moteurs de recherche et à leur crédibilité.
Distribution de logiciels malveillants : Les sites web compromis sont également utilisés pour diffuser des logiciels malveillants afin d'infecter les visiteurs du site.
Vulnérabilités RCE critiques dans des plugins WordPress populaires
Faille RCE dans la migration des sauvegardes
Une vulnérabilité critique (CVE-2023-6553) a été découverte dans un plugin de sauvegarde WordPress populaire appelé Backup Migration, qui compte plus de 80 000 installations actives. L'exploitation de cette vulnérabilité permet aux attaquants de prendre le contrôle total des sites web. Toutes les versions du plugin jusqu'à la version 1.3.7 sont vulnérables. Une mise à jour (version 1.3.8) corrigeant ce problème a été publiée et il est conseillé aux utilisateurs de Backup Migration de passer immédiatement à la dernière version.
Faille RCE de Bricks Builder
Il existe une vulnérabilité critique (CVE-2024-25600) dans Bricks Builder, un plugin de construction de pages populaire (environ 25 000 installations actives), qui permet aux pirates de prendre le contrôle total des sites web. Cette vulnérabilité a été découverte en février 2024 et un correctif (version 1.9.6.1) a été publié peu après. Bien qu'aucune attaque n'ait été confirmée, il est vivement conseillé aux utilisateurs de mettre à jour immédiatement leur site vers la dernière version (1.9.6.1) afin d'éviter d'être piratés.
Vulnérabilités PHP Everywhere dans WordPress
PHP Everywhere est un plugin populaire qui permet aux utilisateurs d'insérer du code PHP personnalisé dans la barre latérale, les pages et les articles des sites web WordPress. Le plugin est utilisé sur plus de 20 000 sites web et a été découvert avec trois vulnérabilités d'exécution de code à distance que les attaquants peuvent exploiter.
La vulnérabilité la plus grave (CVE-2022-24663) permet à toute personne pouvant s'inscrire sur un site web (abonnés) d'injecter du code malveillant et de prendre potentiellement le contrôle de l'ensemble du site web.
Les deux autres vulnérabilités (CVE-2022-24664 et CVE-2022-24665) nécessitent un accès plus important (niveau contributeur) mais peuvent néanmoins être dangereuses.
Ces vulnérabilités ont été corrigées dans la version 3.0.0 du plugin, publiée en janvier 2022. Cependant, de nombreux utilisateurs n'ont pas effectué de mise à jour et sont toujours exposés à des risques. Si vous utilisez PHP Everywhere, mettez immédiatement à jour la version 3.0.0. Par ailleurs, la version 3.0.0 ne prend plus en charge l'éditeur classique. Si votre site utilise cet éditeur, vous devrez donc trouver une autre solution.
Mais une grande raison de s'inquiéter est que ce plugin a été définitivement supprimé de WordPress après que l'auteur en ait fait la demande. Cependant, les sites WordPress sur lesquels ce plugin est installé peuvent encore l'utiliser. Mais il est préférable de trouver un autre plugin similaire car aucune mise à jour ne sera disponible, y compris pour les correctifs de sécurité.
Atténuer les vulnérabilités RCE dans WordPress
Mises à jour régulières : Les plugins, les thèmes et le noyau de WordPress doivent toujours être mis à jour dans les versions les plus récentes afin de corriger les vulnérabilités connues.
Sécuriser les téléchargements de fichiers : Utilisez des méthodes sécurisées pour le téléchargement de fichiers, notamment en validant les types de fichiers et en utilisant des répertoires dédiés avec des autorisations restreintes.
Web Application Firewalls (WAF) : Appliquer un WAF pour filtrer et bloquer les requêtes malveillantes avant qu'elles n'atteignent l'application WordPress.
Plugins de sécurité : Mettez en œuvre des plugins de sécurité qui offrent des fonctionnalités telles que l'analyse des logiciels malveillants, la protection par pare-feu et la surveillance en temps réel. Des services tels que Wordfence, Sucuri ou Jetpack peuvent contribuer à la surveillance et à la protection de votre site.
Principe du moindre privilège : Mettre en œuvre le principe du moindre privilège, en veillant à ce que les utilisateurs disposent des autorisations minimales nécessaires pour fonctionner, limitant ainsi les dommages potentiels d'un exploit.
En outre, vous pouvez suivre les meilleures pratiques de sécurité suivantes :
Limiter l'utilisation des plugins : Réduire le nombre de plugins afin de limiter les vecteurs d'attaque potentiels. Désactivez et supprimez tous les plugins qui ne sont pas activement utilisés.
Sauvegardez régulièrement : Effectuez des sauvegardes régulières de votre site web afin d'en rétablir rapidement le fonctionnement en cas d'attaque réussie.
Questions et défis liés à la mise à niveau
Si les mises à jour de plugins corrigent les vulnérabilités des sites WordPress, elles peuvent parfois entraîner des problèmes de compatibilité avec d'autres plugins, thèmes ou même avec le noyau de WordPress, ce qui entraîne des dysfonctionnements ou des plantages du site. Une autre raison peut être que le plugin ne prend plus en charge la version de PHP utilisée sur votre serveur. Au fur et à mesure de l'évolution de PHP, les nouvelles versions apportent des améliorations et les anciennes ne sont plus maintenues. Pour rester en phase avec les dernières versions de PHP, les plugins, les thèmes et WordPress lui-même publient constamment des mises à jour et abandonnent progressivement la prise en charge des versions PHP obsolètes.
Par exemple, PHP 7.4 n'est n'est plus supporté par l'équipe de développement PHP après le 28 novembre 2022. Tout site web WordPress fonctionnant sur un serveur PHP 7.4 est très vulnérable en raison de l'absence de mises à jour de sécurité. Bien que WordPress supporte toujours PHP 7.4, il affiche le message "PHP Update Required"et recommande aux utilisateurs de mettre à jour PHP dans WordPress pour maintenir la sécurité de leur site web. Les versions de PHP actuellement prises en charge sont PHP 8.1, 8.2 et 8.3, et WordPress a déjà inclus une version bêta pour chacune d'entre elles.
Toutefois, si vous passez à la version 8.x de PHP pour WordPress et que vos plugins et thèmes ne prennent pas en charge PHP 8.x, vous risquez de rencontrer des problèmes de compatibilité qui peuvent entraîner des dysfonctionnements ou des pannes de votre site. Ces problèmes peuvent se manifester sous la forme de messages d'erreur, de fonctionnalités interrompues, voire d'un site web totalement inaccessible.
Pour éviter de tels problèmes, il est essentiel de s'assurer que tous vos plugins et thèmes sont compatibles avec PHP 8.x avant de procéder à la mise à niveau. Vous pouvez le faire en vérifiant les mises à jour auprès des développeurs ou en testant d'abord la nouvelle version de PHP dans un environnement d'essai. Certains développeurs de plugins peuvent abandonner leurs projets, les laissant vulnérables sans aucune mise à jour future.
Sécuriser le PHP obsolète dans WordPress
Dans le cas où vos thèmes et plugins ne supportent pas les versions PHP 8.x, vous pouvez utiliser l'Extended Lifecycle Support (ELS) de TuxCare pour PHP de TuxCare pour maintenir la sécurité de votre site web. ELS pour PHP offre des correctifs de sécurité pour les anciennes versions de PHP qui ne sont plus officiellement supportées. Cela vous permet de continuer à utiliser votre PHP existant dans WordPress en toute sécurité tout en vous donnant, ainsi qu'à vos développeurs de thèmes et de plugins, suffisamment de temps pour mettre à jour le code afin qu'il soit compatible avec PHP 8.x.
Réflexions finales
Les vulnérabilités des thèmes et des plugins de WordPress peuvent être exploitées par des pirates pour obtenir un accès non autorisé à votre site web, voler des données ou injecter du code malveillant. Il est essentiel de les mettre à jour pour assurer la sécurité, mais cela ne se fait pas toujours sans heurts. Les mises à jour peuvent introduire des bogues qui perturbent les fonctionnalités de votre site web, ce qui nécessite un dépannage et des vérifications de compatibilité.
La mise à jour d'une ancienne version de PHP vers PHP 8.x nécessite souvent une réécriture massive du code. Il peut s'agir d'un processus complexe et fastidieux. Le support PHP Extended Lifecycle Support (ELS) de TuxCare de TuxCare vous permet de rester plus longtemps sur les anciennes versions de PHP et de conserver votre code et vos fonctionnalités PHP existants sans vous soucier des risques de sécurité.
Envoyez vos questions à un expert en sécurité de TuxCare pour savoir comment démarrer avec le PHP ELS de TuxCare.