Connexion Premium

Des plugins WordPress infectés après un changement de propriétaire

Une trentaine de plugins WordPress ont été compromis et ajoutaient une porte dérobée permettant à un malandrin de prendre le contrôle des sites web. L’originalité de cette attaque, si on peut dire, est que les plugins en question ont été vérolés après leur acquisition par un tiers malveillant.

EssentialPlugin, une entreprise indienne fondée en 2015 sous le nom WP Online Support, a développé au fil des ans plus de 30 plugins pour WordPress. Parmi ces extensions se trouvent des utilitaires simples et pratiques pour les créateurs de sites web sous WordPress : comptes à rebours (pour une promo, par exemple), carrousels, lecteurs audio/vidéo, FAQ, galeries photos, portfolios… Certains de ces plugins comptent des dizaines et mêmes des centaines de milliers d’installations.

Un ordinateur avec un drapeau pirate sur fond rouge

Après une sévère chute des revenus fin 2024, l’entreprise a été mise en vente sur la plateforme Flippa, spécialisée dans l’achat et la vente de sites web et d’entreprises en ligne. Un acheteur, connu sous le nom de « Kris », s’est porté acquéreur d’EssentialPlugin pour une somme à 6 chiffres, d’après la chronologie d’Austin Ginder.

En mai 2025, le compte développeur d’EssentialPlugin sur WordPress.org change de main, et en août la version 2.6.7 de l’extension Countdown Timer Ultimate est publiée. Officiellement, il s’agit d’ajouter la compatibilité avec WordPress 6.8.2. Mais en sous main, le nouveau propriétaire a ajouté une porte dérobée. Les autres plugins sont également affectés, avec des numéros de version différents mais un mécanisme similaire. La charge en elle-même est dormante pendant 8 mois, puis s’active le 5 avril.

L’attaque ne perturbe pas le fonctionnement des sites, mais elle les transforme en relais discrets de spams SEO via une injection de code dans le fichier critique wp-config.php. Cela se concrétise par l’ajout de pages, de liens et de redirections frauduleuses, du contenu malveillant invisible pour l’administrateur, mais visible par Google.

Les conséquences pour les admins des sites sont sérieuses, cela va de la dégradation du référencement au risque d’alerte de sécurité dans les navigateurs voire une perte de crédibilité si du contenu frauduleux est détecté. Non seulement le nettoyage du site infecté est complexe (une simple mise à jour du plugin ne suffit pas), mais en plus l’infrastructure pirate est difficile à bloquer. Le serveur C2, l’infrastructure utilisée par les pirates pour piloter le malware à distance, changeait dynamiquement d’adresse en s’appuyant sur la blockchain Ethereum. Ils pouvaient ainsi la modifier à volonté.

L’équipe Plugins de WordPress.org ne tarde heureusement pas à réagir et dès le 7 avril, elle bloque les plugins de l’éditeur EssentialPlugin. Mais il n’existe pas de mécanisme pour signaler les transferts de propriété, ce qui permettrait aux utilisateurs de plugins d’être au minimum informés. Austin Ginder propose aux administrateurs des sites web touchés une méthode à base de Claude Code pour supprimer les modules vérolés.

Ce mode opératoire — le rachat d’un plugin WordPress par un tiers malveillant — n’est pas une nouveauté malheureusement. Cela a déjà été le cas avec Widget Logic, une autre extension légitime et bien connue qui a changé de mains… et dont le nouveau propriétaire en a profité pour ajouter du code vérolé.

Commentaires (4)

votre avatar
Comment changer de serveur dynamiquement via une blockchain ?
votre avatar
La blockchain est une base de données publique et partagée : l'endroit idéal pour partagé de l'information : c'est fait pour.
Le plugin doit simplement récupérer la BC puis lire un jeton particulier de la blockchain (dont le pirate est propriétaire). Ceux-ci peuvent porter des metadata (ça sert pour les smart-contracts - ou les NFT- notamment), l'un deux doit être l'adresse du serveur. Si le pirate veut changer l'URL, il écrit simplement dans la BC et une nouvelle version du jeton est écrit dans la BC.
votre avatar
J'en peux plus de WordPress 😵
votre avatar
C’est très visible avec WP, mais en soit c’est le même problème avec ce principe de librairie publique en ligne. Certes très pratique, mais fait dépendre de tiers non identifié.
Python, NodeJS, Perl et même RUST sont aussi beaucoup basés sur ce principe, et ont +/- les même problèmes.