En août 2025, un acheteur se présentant sous le nom « Kris » a dissimulé une bombe à retardement dans 191 lignes de code ; huit mois plus tard, elle a explosé, et les communications C2 ont contourné le blocage. Cet article est tiré d’un rapport de l’expert en sécurité Austin Ginder.
(Contexte : Impact de BTC : 75 000 $ ! ETH en reprise à 2400, Farms dit qu’il y a eu « de nombreux progrès » dans les négociations entre les États-Unis et l’Iran, deuxième session de négociations prévue pour le 16)
(Complément de contexte : Lettre publique du fondateur de Gate, Dr. Han, pour son 13e anniversaire : libérer la force du changement lors du passage de cycle)
Table des matières
Toggle
Trente extensions, une période de latence de huit mois, et serveurs C2 mis à jour dynamiquement via des contrats intelligents Ethereum. Début avril 2026, WordPress.org a désactivé plus de 30 extensions en une seule journée de travail, pour un total d’installations se chiffrant à des millions. Et ce qui est encore plus sidérant, c’est que la porte dérobée était déjà en ligne dès le 8 août 2025, soit 243 jours avant sa découverte.
On remonte dans le temps jusqu’en 2015. L’équipe indienne de WP Online Support (rebaptisée plus tard Essential Plugin) a été fondée par trois personnes, dont Minesh Shah. En dix ans, elle a constitué une gamme de produits couvrant plus de 30 extensions. Fin 2024, les revenus avaient chuté de 35 à 45 % par rapport à leur pic, et l’équipe a choisi de mettre l’entreprise en vente sur Flippa.
L’acheteur est une personne dont le parcours s’étend au marketing SEO, à la crypto-monnaie et au marketing de jeux en ligne, qui se présente à l’extérieur sous le nom de « Kris ». Le 8 août 2025, la version 2.6.7 a été publiée, et le changelog ne mentionnait que ces quatre mots : « mise à jour de compatibilité ».
Le changement réel est le suivant : le fichier class-anylc-admin.php est passé de la ligne 473 à la ligne 664, avec l’ajout de 191 lignes de code de porte dérobée. C’est le premier commit de Kris sur SVN.
La porte dérobée n’a pas été activée immédiatement. Elle est restée en sommeil jusqu’au 5–6 avril 2026, puis a commencé la première phase : le module wpos-analytics envoie une requête de rappel à analytics.essentialplugin.com, téléchargeant un fichier nommé wp-comments-posts.php. Il imite volontairement wp-comments-post.php, celui du cœur WordPress, avec une lettre en moins.
Le 6 avril 2026 à 04:22 UTC, l’injection a démarré ; à 11:06 UTC, wp-config.php était déjà entièrement écrit sur les sites victimes du monde entier. En 6 heures et 44 minutes, aucune alerte au niveau des plateformes n’a été déclenchée.
Le code malveillant injecté fait deux choses : d’abord, il insère des liens sortants de spam, mais uniquement en fonction de l’agent utilisateur de Googlebot ; les pages vues par les visiteurs ordinaires et les administrateurs du site restent parfaitement normales. Ensuite, il ouvre un point de terminaison REST API non authentifié (permission_callback: __return_true), combiné avec une fonction PHP de désérialisation fetch_ver_info(), ce qui crée un chemin d’exécution à distance via appel de fonction arbitraire.
Cependant, le détail de conception le plus important à consigner ne se situe pas dans l’injection elle-même, mais dans la stratégie d’évitement de l’infrastructure C2 : les attaquants écrivent la logique de résolution des domaines de commande dans un contrat intelligent Ethereum ; la porte dérobée interroge alors les derniers points de destination via les nœuds RPC de la blockchain publique.
Les mécanismes classiques de cybersécurité comme les listes noires de domaines et le blocage DNS sont totalement inefficaces pour cette architecture. Les attaquants n’ont qu’à mettre à jour le contrat : le C2 de tous les sites infectés change de manière synchronisée, sans avoir besoin de toucher à aucun serveur contrôlé.
En 2017, Daley Tias a acheté pour 15 000 dollars l’extension Display Widgets, avec 200 000 installations, et y a injecté des liens de spam de type prêt ; par la suite, l’incident a touché au moins 9 autres extensions. Après cet événement, WordPress.org n’a pas mis en place de mécanisme de vérification obligatoire pour le transfert de propriété des extensions ; il n’a pas non plus déclenché de contrôles manuels ou automatisés supplémentaires lors de la première soumission du nouveau committer ; et il n’a pas envoyé de notification aux utilisateurs existants installant l’extension, du type « l’extension a changé de propriétaire ».
Neuf ans plus tard, le processus était exactement le même. Kris a finalisé l’acquisition, a obtenu les droits de soumettre des commits SVN, et le premier commit était la porte dérobée : le tout, en conformité.
Cet incident n’a utilisé aucune vulnérabilité zero-day. La qualité du code de la porte dérobée est médiocre ; dans les 191 lignes, il n’y a aucune technique d’obfuscation sophistiquée. Sa capacité à rester en sommeil pendant 243 jours ne repose pas sur des capacités techniques, mais sur l’absence complète, de la part de WordPress.org, de contrôles à l’occasion du changement de propriétaire dans le marketplace d’extensions.
L’analyse du domaine C2 via un contrat intelligent Ethereum ajoute bien une couche de conception qui mérite d’être discutée sur le plan technique, mais cela ne fait qu’augmenter la difficulté de suppression, sans être la cause qui a permis l’attaque. L’attaque a pu se produire parce que la plateforme autorise n’importe qui à acheter une extension, à pousser des mises à jour, sans avoir à expliquer à qui que ce soit en quoi « la mise à jour de compatibilité » du changelog est effectivement compatible avec quoi.
Le 7 avril 2026, l’équipe des plugins de WordPress.org a désactivé définitivement toutes les extensions de l’auteur d’Essential Plugin. Au moins 30 plugins, tous fermés le même jour. Voici les extensions confirmées par Austin Ginder :
Articles similaires
Accès au réseau de jetons Calastone pour 68 milliards de dollars, les fonds L&G prennent en charge le règlement le jour même
Le membre de la Ethereum Foundation, Trent Van Epps, annonce son départ
Matrixport : l’entité liée clôture une position Long 20x sur 25 000 ETH après 65 jours, réalisant un profit de 17,32 M$
Les intérêts ouverts des futurs Ethereum atteignent 25,4 Md$ alors que les institutions constituent des positions, mais les taux de financement des perpétuels signalent la prudence
Un baleine parie 50 000 ETH sur Everstake, d’une valeur de plus de 116,97 M$
Les ETF Bitcoin, Ethereum et Solana enregistrent des entrées nettes positives le 15 avril