En bref

  • Sept plugins WordPress de BdThemes compromis via un flux JSON promotionnel empoisonné hébergé sur DigitalOcean Spaces — sans modification du code source des plugins
  • Plugins affectés : Element Pack Addons for Elementor, Prime Slider, Pixel Gallery, Ultimate Post Kit, Ultimate Store Kit, Live Copy Paste, Smart Admin Assistant
  • Action requise : auditer immédiatement les comptes admins WordPress, rechercher emer-run.php et vérifier l'option fz_emer_login_tokens en base

Les faits

Le 7 août 2026, Wordfence Threat Intelligence a été notifié d'une compromission affectant l'éditeur bangladais BdThemes, dont la suite de plugins pour WordPress est installée sur plusieurs millions de sites dans le monde. L'alerte publique a été publiée le 11 août 2026 par BleepingComputer et The Hacker News, et l'équipe de sécurité de WordPress.org a temporairement retiré les plugins du répertoire officiel dans l'attente de l'enquête.

Ce qui rend cette attaque particulièrement insidieuse, c'est son vecteur : les attaquants n'ont pas modifié le code source des plugins stocké dans le dépôt WordPress.org. Ils ont compromis un flux de données JSON statique hébergé dans un bucket DigitalOcean Spaces, protégé par Cloudflare, que plusieurs plugins BdThemes interrogent à chaque chargement de page d'administration pour afficher des bannières promotionnelles. Ce flux externe, considéré comme de confiance par les plugins, a été transformé en vecteur de livraison de code malveillant.

Le mécanisme repose sur un script nommé Biggopti, intégré aux plugins BdThemes. Ce script s'exécute à chaque chargement de page wp-admin pour un administrateur authentifié. Il récupère le contenu du bucket DigitalOcean — désormais empoisonné — qui transporte un payload JavaScript malveillant. Ce payload accomplit trois actions : il crée un compte administrateur fantôme avec des credentials définis par les attaquants, installe une webshell PHP persistante, et extrait les jetons de session actifs stockés via l'option fz_emer_login_tokens de la table wp_options.

Les webshells déposées suivent un nommage obfusqué mimant les conventions WordPress. Le fichier principal s'appelle emer-run.php, mais des variantes utilisent des noms du type class-wp-query-[chaîne aléatoire].php pour passer inaperçues lors d'audits rapides. Ces fichiers se logentt préférentiellement dans le répertoire wp-content/mu-plugins/, qui est exécuté automatiquement par WordPress sans nécessiter d'activation explicite.

L'analyse forensique de Wordfence indique que la compromission remonterait au 23 juin 2026 au plus tôt, d'après les horodatages des enregistrements promotionnels empoisonnés. La campagne a donc opéré discrètement pendant plus de six semaines avant d'être détectée. La vulnérabilité XSS initiale, tracée par Wordfence avec un CVSS de 5.4, avait été introduite dans Prime Slider version 4.1.9 dès le 1er mars 2026, avant de se propager aux autres produits de la suite.

Les sept plugins affectés représentent un périmètre considérable : Element Pack Addons for Elementor dépasse seul le million d'installations actives selon les statistiques WordPress.org. Prime Slider, Pixel Gallery, Ultimate Post Kit et Ultimate Store Kit comptent chacun plusieurs centaines de milliers d'installations. La surface d'attaque cumulée se mesure en millions de sites WordPress dans le monde, dont une part significative opèrent des boutiques en ligne, des médias ou des intranets d'entreprise.

Ce vecteur d'attaque illustre parfaitement les limites d'une sécurité centrée sur l'intégrité des fichiers et les scans antiviraux classiques : aucun de ces contrôles n'aurait détecté la compromission, puisque la malveillance est portée par des données externes — le JSON du bucket DigitalOcean — et non par le code des plugins lui-même. C'est la première attaque supply chain documentée à grande échelle exploitant un flux de données promotionnelles comme vecteur de livraison sur WordPress.

Les sites e-commerce, agences web et médias numériques utilisant Elementor avec les extensions BdThemes sont particulièrement à risque : la valeur des données accessibles (credentials clients, informations de paiement, sessions actives) et la présence régulière d'administrateurs sur le back-office maximisent à la fois l'exposition et l'impact d'une compromission réussie.

Impact et exposition

Sont exposés tous les sites WordPress ayant l'une des sept versions affectées installées et dont un administrateur authentifié a chargé une page wp-admin entre le 23 juin 2026 et la date de neutralisation du bucket DigitalOcean. L'exploitation ne requiert aucune interaction directe de l'attaquant avec le site cible : la simple visite d'un administrateur sur son tableau de bord suffit à déclencher le payload. Les environnements d'e-commerce, les CMS de médias, les sites d'agences gérant plusieurs clients et les WordPress multisite sont particulièrement exposés en raison du volume d'activité administrative et de la valeur des données stockées.

Recommandations

  • Auditer immédiatement la liste des comptes administrateurs WordPress — supprimer tout compte inconnu créé après le 23 juin 2026
  • Rechercher emer-run.php et tous fichiers class-wp-query-*.php dans l'ensemble du répertoire WordPress, notamment dans wp-content/mu-plugins/
  • Exécuter la requête SQL suivante pour vérifier la présence du marqueur de compromission : SELECT option_value FROM wp_options WHERE option_name = 'fz_emer_login_tokens'; — tout résultat indique une compromission confirmée
  • Mettre à jour ou désinstaller les sept plugins BdThemes affectés
  • Réinitialiser toutes les clés cryptographiques WordPress (AUTH_KEY, SECURE_AUTH_KEY, etc.) dans wp-config.php
  • Invalider toutes les sessions administrateur actives et forcer une réauthentification complète
  • Bloquer les connexions sortantes non autorisées vers des buckets DigitalOcean Spaces via WAF ou politique réseau

Alerte critique

Si votre site WordPress utilise l'un des sept plugins BdThemes affectés, considérez-le comme compromis jusqu'à preuve du contraire. Une mise à jour du plugin seule ne suffit pas : vérifiez l'intégrité des comptes admins, du système de fichiers et de la base de données avant toute remise en production.

Comment détecter rapidement si mon site WordPress est compromis par la supply chain BdThemes ?

Trois vérifications immédiates : (1) Lancer find /var/www -name "emer-run.php" -o -name "class-wp-query-*.php" 2>/dev/null sur le serveur. (2) Exécuter en SQL : SELECT COUNT(*) FROM wp_options WHERE option_name = 'fz_emer_login_tokens'; — un résultat non nul confirme la compromission. (3) Lister les admins créés après le 23 juin : SELECT u.user_login, u.user_registered FROM wp_users u INNER JOIN wp_usermeta m ON u.ID=m.user_id WHERE m.meta_key='wp_capabilities' AND m.meta_value LIKE '%administrator%' AND u.user_registered > '2026-06-23';

Votre infrastructure WordPress est-elle exposée ?

Ayi NEDJIMI réalise des audits de sécurité ciblés pour identifier et corriger vos vulnérabilités avant qu'elles ne soient exploitées.

Demander un audit