Aller au contenu
Beveiligingsnieuws

BdThemes : attaque chaîne logistique via JSON

BdThemes supply chain aanval

Des chercheurs en cybersécurité alertent sur une attaque chaîne logistique JSON ayant compromis des plugins WordPress fournis par le vendeur BdThemes. Dans cette affaire, les éléments critiques ne se trouvent pas dans le dépôt officiel de WordPress : l’opération passe par des données à distance, chargées au moment de l’affichage dans l’interface d’administration.

Face au risque, l’équipe plugins du CMS a pris une mesure immédiate : les téléchargements des extensions concernées ont été temporairement désactivés, le temps de mener une “revue complète”.

Pourquoi ce cas diffère d’une attaque classique

Selon Wordfence, aucun fichier de code source n’aurait été modifié au sein du référentiel officiel WordPress.org. L’attaque s’appuie plutôt sur une technique dite “poisoning” d’un flux de données : des attaquants auraient empoisonné une réponse JSON statique consommée par un composant d’affichage de bannières promotionnelles dans l’espace d’administration.

Le chercheur Paolo Tresso explique l’approche : le mécanisme en jeu intercepte des informations via une bannières/admin et interprète ensuite les réponses JSON. En cas de réponse falsifiée, l’interface admin peut exécuter du contenu hostile.

Les plugins BdThemes concernés

Wordfence liste plusieurs plugins touchés, dont l’activité varie selon les extensions. Parmi ceux mentionnés :

  • Element Pack Addons for Elementor (bdthemes-element-pack-lite) — 100 000+ installations actives
  • Live Copy Paste for Elementor (live-copy-paste) — 6 000+ installations actives
  • Pixel Gallery Addons for Elementor (pixel-gallery) — volume non précisé
  • Prime Slider Addons for Elementor (bdthemes-prime-slider-lite) — volume non précisé
  • Smart Admin Assistant (smart-admin-assistant) — volume non précisé
  • Ultimate Post Kit Addons for Elementor (ultimate-post-kit) — volume non précisé
  • Ultimate Store Kit (ultimate-store-kit) — 6 000+ installations actives

Sur la page WordPress Plugins Directory de ces extensions, un message indique qu’elles ont été fermées aux téléchargements à partir du 7 ou 8 août 2026, en attente d’une analyse approfondie.

Le rôle du composant Biggopti et du stockage cloud

L’origine de la compromission est attribuée à un composant interne nommé Biggopti, embarqué avec les plugins. Ce système a pour but de récupérer des bannières promotionnelles via un serveur API et de les afficher dans WordPress admin.

Concrètement, le composant récupère des fichiers JSON depuis un bucket de stockage dans un service cloud (indiqué comme DigitalOcean Spaces). Là où se situe le problème, c’est que le contenu JSON renvoyé pouvait être remplacé par des réponses fabriquées par des acteurs malveillants.

La faille XSS dans le traitement JSON

La menace repose sur une vulnérabilité de cross-site scripting (XSS) liée au parsing des réponses JSON. Dans les détails rapportés, le code de traitement côté client ne ferait pas suffisamment d’échappement lorsqu’il utilise un paramètre nommé display_id, alimenté par des données issues de la Sigmative API.

Ce défaut permettrait à un attaquant de faire injecter des scripts dans les pages concernées. Le point critique : le script s’exécute à chaque chargement de page relevant de wp-admin pour un administrateur authentifié.

La vulnérabilité est évaluée à 5,4 sur l’échelle CVSS, ce qui correspond à une sévérité moyenne dans la classification mentionnée.

Déclenchement silencieux et persistance côté site

Comme l’exécution se fait à l’intérieur du navigateur de l’administrateur connecté, l’activité peut passer inaperçue : l’injection se déclenche au chargement des pages d’administration, sans action explicite de l’utilisateur.

À partir de là, Wordfence indique que le script injecté enchaîne avec plusieurs actions : création de comptes administrateurs non légitimes, déploiement d’un web shell via un plugin téléchargé, puis installation de modules de persistance dans le répertoire mu-plugins (plugins “must-use”, chargés automatiquement).

Première charge utile : le fichier w2.js

Le payload principal est servi via l’endpoint api-data-all-records. Un fichier JavaScript nommé w2.js joue un rôle central dans l’orchestration.

D’après les informations publiées, il procède notamment comme suit :

  • Il contacte un serveur C2 (command-and-control) à l’adresse mentionnée comme ia-cdn[.]com/fz/c, en envoyant l’origine du site victime pour obtenir des instructions de ciblage. L’exécution s’arrête si la réponse indique un statut comme “skip” ou “done”.
  • Il crée un nouvel administrateur frauduleux via l’API REST de WordPress.
  • Il télécharge un fichier ZIP de plugin factice depuis le serveur C2 et l’installe via le formulaire standard de téléversement de plugins, ce qui déclenche ensuite le déploiement d’un web shell (nommé emer-run.php dans le rapport).
  • Il active ensuite la persistance : un module de “magic-login” permettant l’accès administratif via un paramètre d’URL (?_wplogin=<token>), et un module de furtivité qui s’accroche à des requêtes base de données WordPress afin de masquer l’existence des comptes et de manipuler l’affichage du nombre d’utilisateurs.

Le résultat recherché est clair : obtenir un contrôle administratif discret et maintenir l’accès tout en réduisant les indices côté interface.

Deuxième charge utile : le fichier x.js et des identifiants “déterministes”

Un autre payload, identifié comme x.js, a été trouvé hébergé sur l’infrastructure du développeur. Il est délivré via l’endpoint api-data-records.

Cette charge utile vise à produire des identifiants administrateur “déterministes”, calculés à partir du hostname de la victime. L’objectif est de ne pas avoir à stocker une liste centralisée de sites compromis.

Le principe décrit par Wordfence :

  • Le nom d’utilisateur est prévisible : bd_ suivi d’un hash base36 sur 6 caractères.
  • Le mot de passe est aussi calculé : Bd@26! + le hash + x.
  • L’adresse e-mail associée utilise @wordpress.org.

Ensuite, le script crée l’utilisateur administrateur malveillant, puis exfiltre les résultats vers le serveur C2. Cette logique rend la chasse plus “mathématique” : les équipes d’intervention peuvent calculer les identifiants à partir d’un domaine suspect.

Une intrusion liée à d’autres attaques contre l’écosystème WordPress

Le serveur C2 mentionné serait rattaché à d’autres attaques de chaîne logistique observées récemment. Dans deux cas cités, impliquant Advanced Responsive Video Embedder (référence CVE-2026-18072) et OptinMonster, des plugins auraient été “backdoorés” pour offrir un accès administrateur complet à des attaquants non authentifiés.

Les mécanismes différaient d’un cas à l’autre, mais la finalité reste la même : persistance administrative, exécution à distance et maintien d’un contrôle difficile à détecter.

Un signal préoccupant : des fichiers uploadés directement dans le bucket

Wordfence souligne un élément qui renforce l’hypothèse d’une compromission en amont : les enregistrements JSON malveillants et le second payload x.js auraient été déposés directement dans le bucket du fournisseur. Ce fait suggère une atteinte aux identifiants ou à l’infrastructure cloud utilisée pour publier les contenus.

Autrement dit, l’attaque ne passe pas uniquement par des failles dans le navigateur : elle implique aussi un accès à la source de distribution des données qui alimentent les composants des plugins.

Contexte : WordPress a aussi corrigé une autre XSS exploitable

Cette alerte survient quelques jours après la correction par WordPress d’une autre vulnérabilité de type XSS préalable à l’exécution (mentionnée comme CVE-2026-64638, aussi connue sous le nom XSS2Shell) ayant reçu un score 8,9 sur CVSS.

Dans ce précédent cas, l’exploitation pouvait mener à une exécution de code PHP lorsque qu’un administrateur interagit avec une page contrôlée par un attaquant.

Pris ensemble, ces incidents montrent que l’écosystème WordPress reste un terrain privilégié pour les chaînes d’attaque combinant XSS, détournement de contenu et mécanismes de persistance.

Ce que les propriétaires de sites doivent retenir

Si vous utilisez des plugins BdThemes listés comme concernés, l’information la plus importante est liée au mode de compromission : même sans modification de fichiers visibles sur le dépôt officiel, des réponses JSON empoisonnées peuvent déclencher du code dans le navigateur des administrateurs à l’ouverture de pages admin.

La fermeture et la revue des téléchargements visent à limiter la propagation. Pour une démarche de sécurité, l’attention doit également se porter sur les comptes utilisateurs créés frauduleusement, les traces de web shells et les éventuels modules installés dans les must-use plugins.

Conclusion

Cette affaire illustre une attaque chaîne logistique JSON particulièrement difficile à repérer : elle s’appuie sur un flux de données distant (JSON) et sur un traitement vulnérable, plutôt que sur une altération évidente du code dans le dépôt officiel. En pratique, l’impact va bien au-delà d’une simple injection : la chaîne d’attaque peut aboutir à des administrateurs pirates, une persistance et une exécution de code via un web shell.

En attendant les recommandations complètes, le meilleur réflexe est de suivre les mises à jour liées aux plugins fermés, de vérifier l’absence d’éléments suspects côté administration, et de renforcer la surveillance des comptes et des extensions.

Source: https://thehackernews.com/2026/08/bdthemes-supply-chain-attack-poisons.html