Onderzoekers waarschuwen voor een BdThemes supply chain aanval die geen normale plug-in wijzigingen vereist. In plaats daarvan is een remote JSON-datastream die via een bannercomponent in de WordPress-adminomgeving wordt opgehaald, vergiftigd. Het gevolg: kwaadaardige scripts kunnen draaien in de browser van ingelogde beheerders, met als doel persistente toegang en remote code execution.
Omdat dit patroon sterk lijkt op andere supply chain incidenten binnen het WordPress-ecosysteem, is het belangrijk om de kern van de aanval te begrijpen én meteen te controleren of je geraakt kunt zijn.
Wat is er precies gebeurd?
Bij de campagne rond BdThemes meldden onderzoekers dat er geen broncodebestanden in de officiële WordPress.org repository waren aangepast. Het misbruik verliep volgens de onderzoekers via een statische JSON-stream die door een admincomponent wordt opgehaald.
De plugins halen daarbij promotiebanners op via hun eigen systeem. In plaats van content lokaal aan te passen, wordt de relevante JSON uit een bucket opgevraagd. Wordfence-onderzoeker Paolo Tresso lichtte toe dat aanvallers de JSON-respons hebben vergiftigd, waardoor kwaadaardige code kan worden geïnjecteerd.
De kwetsbaarheid: XSS via onveilig JSON-parsen
De kern van het probleem zit in een interne bibliotheek die met de plugins wordt meegeleverd. Deze bibliotheek blijkt kwetsbaar voor cross-site scripting (XSS) door onvoldoende client-side escaping in de parsing van JSON-responses.
Concreet kan een aanvaller, zodra de API wordt gecompromitteerd, scripts injecteren via een parameter in de respons (genoemd in de berichtgeving als display_id). De JavaScript-injectie draait vervolgens wanneer een gebruiker naar adminpagina’s gaat.
Omdat de kwaadaardige code actief wordt bij het laden van wp-admin-pagina’s, kan het effect “stil” optreden: elke ingelogde beheerder die de getroffen adminschermen bezoekt, kan de payload uitvoeren.
Welke plugins zouden getroffen kunnen zijn?
De onderzoekers koppelen de issue aan een reeks BdThemes-plugins die via WordPress-plugindirectory downloads aanbieden. Meerdere vermeldingen tonen volgens de berichtgeving meldingen dat ze tijdelijk gesloten zijn en niet beschikbaar zijn voor download “pending a full review” (met sluitingsdata zoals 7 of 8 augustus 2026).
Het gaat onder andere om plugins met (in de brontekst genoemde) actieve aantallen of in sommige gevallen onbekende aantallen, zoals:
- Element Pack Addons for Elementor (Elementor Widgets, Templates, addons) – 100.000+ actieve installaties
- Live Copy Paste for Elementor – 6.000+ actieve installaties
- Pixel Gallery Addons for Elementor
- Prime Slider Addons for Elementor
- Smart Admin Assistant
- Ultimate Post Kit Addons for Elementor
- Ultimate Store Kit (voor WooCommerce/EDD/Elementor) – 6.000+ actieve installaties
Let op: de precieze impact op jouw site hangt af van of je die specifieke pluginversies gebruikt en of de betreffende componenten in jouw beheeromgeving worden aangeroepen.
Waarom is dit zo schadelijk: rogue admins en webshells
De aanval is opgezet om beheerdersrechten op een WordPress-site te veroveren en vervolgens persistente toegang te borgen. Daarbij gebruiken de aanvallers een route die niet afhankelijk is van een update of aangepaste pluginbestanden op disk.
In de berichtgeving wordt beschreven dat de payload via API-endpoints wordt geleverd. Vervolgens doorloopt de code een serie stappen:
- Contact opnemen met een externe C2-server om instructies op te halen (en uitvoering te stoppen als de server “skip” of “done” teruggeeft).
- Aanmaken van een rogue administrator via de WordPress REST API.
- Downloaden en installeren van een fake plugin ZIP via het standaard WordPress-uploadmechanisme.
- Uitrollen van een PHP webshell (genoemd als emer-run.php).
- Installeren van persistentiemechanismen in mu-plugins (Must-Use plugins), waaronder een backdoor die toegang mogelijk maakt via een URL-parameter met token.
- Inbouwen van een anti-analyse/stealth module die query’s kan beïnvloeden en het “onzichtbaar” maken van de rogue gebruikers kan ondersteunen in adminlijsten.
Het gebruikte stealth-mechanisme richt zich op het verbergen van de aanwezigheid van de rogue accounts en manipuleert ook hoe het totale aantal gebruikers wordt weergegeven.
Hoe wordt de payload geleverd: api-data endpoints
Volgens de details uit de bron gebeurt de datalevering via specifieke API-werkstromen. Er wordt melding gemaakt van een api-data-all-records-endpoint waarop de payload (een JavaScript-bestand genoemd als w2.js) wordt opgevraagd.
Daarnaast bestaat er een alternatieve payload (een bestand genoemd als x.js) die via een ander endpoint (api-data-records) wordt geserveerd. Deze variant is ontworpen om “deterministische” beheerderscredentials te genereren op basis van het domein.
Deterministische accounts: minder afhankelijkheid van een lijst
Het interessante aan die tweede variant is dat aanvallers geen centrale lijst met gecompromitteerde doelwitten hoeven bij te houden. In de berichtgeving staat dat usernames en wachtwoorden wiskundig worden afgeleid van de hostname van de getroffen site.
Met andere woorden: het is voor onderzoekers niet alleen belangrijk om te kijken naar anomalieën op de site, maar ook om te beseffen dat de aanvaller vooraf geen “dump” van doelgegevens hoeft te beheren—de gegevens kunnen ter plekke berekend worden.
Wat betekent dit voor jou als beheerder?
Dit soort aanval draait om een keten van misbruik: gecompromitteerde cloud-opslag, vergiftigde JSON, XSS in adminpagina’s en vervolgens het installeren van persistente onderdelen. Daardoor is “alleen plugin opnieuw installeren” soms niet genoeg.
Als je BdThemes-plugins gebruikt die in de genoemde categorieën vallen, is het verstandig om de volgende stappen te overwegen:
- Inventariseer welke van de betrokken plugins actief zijn op je WordPress-sites.
- Check de versie en status van plugins en vervang/uitschakel waar passend totdat een volledige review is afgerond.
- Zoek naar rogue accounts en controleer ook mu-plugins (Must-Use) en geïnstalleerde plugins die je niet herkent.
- Controleer op webshell-achtige bestanden en ongebruikelijke endpoints.
- Herstel van vertrouwen: verander wachtwoorden, herzie beheertoegang en voer een grondige incidentanalyse uit.
Heb je meerdere admin-gebruikers? Realiseer je dat de payload draait wanneer adminpagina’s worden geladen, dus ook je monitoring en uitrol van MFA/rolgebaseerde toegang spelen mee in de impact.
Vergelijking met andere WordPress supply chain incidenten
De campagne wordt in de berichtgeving geplaatst naast andere recente WordPress-aanvallen waarbij supply chain misbruik leidde tot extra administratieve toegang. In die gevallen werden plugins of admin-toegang eveneens “op afstand” geactiveerd wanneer een sitebeheerder inlogt.
Wat dit extra urgent maakt, is dat het einddoel niet stopt bij een XSS. De keten is gericht op het verkrijgen van covert administratieve persistence en het positioneren van remote code execution via geïnstalleerde componenten.
Het gegeven dat kwaadwillende JSON-records en een secundaire payload direct in de vendor-gerelateerde bucket zijn geplaatst, wijst bovendien op een diepgaande verstoring van cloud credentials of interne infrastructuur bij de leverancier.
Extra waarschuwing: XSS kan ook tot serverimpact leiden
Naast deze BdThemes-casus verwijst de bron naar een andere kwetsbaarheid binnen WordPress: een pre-authentication reflected XSS-issue met een hoge CVSS-score die kan leiden tot PHP-code-executie op serverniveau wanneer een ingelogde beheerder een door een aanvaller gecontroleerde pagina bezoekt.
Dat benadrukt een breder punt: XSS-issues zijn zelden “alleen maar” browserproblemen. Ze kunnen, afhankelijk van de context en vervolglogica, doorgroeien naar daadwerkelijke systeemcontrole.
Gerelateerde beveiligingsinformatie op onze site
Wil je meer context over aanvallen waarbij misbruik ontstaat via supply chain of via kwetsbaarheden in adminflows? Lees dan ook:
