BdThemes Supply Chain-aanval vergiftigt JSON om malafide WordPress-beheerders te creëren

Cybersecurity-onderzoekers hebben gewaarschuwd voor een compromis in de toeleveringsketen dat gevolgen heeft voor WordPress-plug-inleverancier BdThemes, wat het plug-insteam van het contentmanagementsysteem (CMS)-platform ertoe heeft aangezet hun downloads tijdelijk uit te schakelen.

“In tegenstelling tot traditionele aanvallen op de supply chain van software, werden er geen broncodebestanden gewijzigd binnen de officiële WordPress.org-repository”, zegt Wordfence-onderzoeker Paolo Tresso. “In plaats daarvan vergiftigden bedreigingsactoren een statische externe JSON-datastroom die werd opgehaald door een administratieve promotiebannercomponent.”

De lijst met getroffen plug-ins vindt u hieronder:

  • Element Pack-add-ons voor Elementor – Elementor-widgets, Elementor-sjablonen, Elementor-add-ons (bdthemes-element-pack-lite) – 100.000+ actieve installaties
  • Live Copy Paste voor Elementor – Cross Domain Copy Paste & Page Duplicator (live-kopiëren-plakken) – 6.000+ actieve installaties
  • Pixel Gallery-add-ons voor Elementor – Easy Grid, Creative Gallery, Drag and drop Grid, aangepaste rasterindeling, Portfolio Gallery (pixel-gallery) – N.v.t.
  • Prime Slider-add-ons voor Elementor – Widgets, sjablonen en Elementor-add-ons (bdthemes-prime-slider-lite) – N.v.t.
  • Slimme beheerdersassistent – ​​Dashboard- en siteverbeteringen (smart-admin-assistent) – N.v.t
  • Ultimate Post Kit-add-ons voor Elementor (ultimate-post-kit) – N.v.t
  • Ultimate Store Kit – Add-on voor WooCommerce, EDD en Elementor (ultimate-store-kit) – 6.000+ actieve installaties

Gebruikers die de vermeldingen voor elk van de bovengenoemde plug-ins in de WordPress-plug-insdirectory bezoeken, krijgen het bericht te zien dat ze zijn gesloten vanaf 7 of 8 augustus 2026 en niet beschikbaar zijn om te downloaden in afwachting van een “volledige beoordeling”.

Volgens het WordPress-beveiligingsbedrijf is het probleem geworteld in een interne component genaamd Biggopti die samen met de plug-ins wordt geleverd. Het systeem is ontworpen om promotiebanners van hun API-server te halen en deze weer te geven in het WordPress-beheerdersdashboard door relevante JSON-bestanden op te halen uit een DigitalOcean Spaces-bucket.

De bibliotheek is kwetsbaar bevonden voor een cross-site scripting (XSS)-fout in de JSON-antwoordparseercode via de parameter “display_id” van de Sigmative API vanwege onvoldoende ontsnapping aan de clientzijde. Als gevolg hiervan kan een aanvaller die de API kan compromitteren, willekeurige webscripts in pagina’s injecteren die worden uitgevoerd telkens wanneer een gebruiker die pagina’s bezoekt.

Omdat het script wordt uitgevoerd bij elke “wp-admin” -pagina die wordt geladen, wordt de geïnjecteerde code stil geactiveerd in de browser van elke ingelogde beheerder. De kwetsbaarheid krijgt een score van 5,4 op het CVSS-scoresysteem, wat een gemiddelde ernst aangeeft.

De wijziging zou voor het eerst zijn geïntroduceerd op 1 maart 2026 in “bdthemes-prime-slider-lite” voordat deze op anderen werd toegepast. De aanval is opmerkelijk omdat deze volledig via de API wordt aangestuurd en er geen updates van plug-ins of bestanden op schijf nodig zijn.

“Schurkenstaten kregen schrijftoegang tot die bucket en vervingen de legitieme JSON-reacties door vervaardigde payloads om die kwetsbaarheid te misbruiken”, aldus Wordfence. “De XSS wordt stil in de browser van elke ingelogde beheerder geactiveerd bij elke wp-admin-pagina die wordt geladen. Van daaruit maakt het geïnjecteerde script frauduleuze beheerdersaccounts, uploadt een webshell-plug-in en belt naar huis naar een command-and-control (C2) server.”

De belangrijkste payload wordt aan de plug-ins geleverd met behulp van het API-eindpunt “api-data-all-records”. Een JavaScript-bestand met de naam ‘w2.js’, de payload voert de volgende acties uit:

  • Neemt contact op met de C2-server (“ia-cdn(.)com/fz/c”) met de oorsprong van de website van het slachtoffer om targetinginstructies op te halen. De uitvoering wordt afgebroken als de C2-server de status “skip” of “done” retourneert.
  • Creëert een nieuwe frauduleuze beheerder via de WordPress REST API.
  • Downloadt een valse plug-in ZIP van de C2-server en installeert deze via het standaard plug-in-uploadformulier, wat resulteert in de implementatie van een PHP-webshell (“emer-run.php”).
  • Roept de webshell aan om twee persistentiemodules te installeren in de map Must-Use plugins (“mu-plugins”): één is een “magic-login backdoor” die niet-geverifieerde administratieve invoer mogelijk maakt via een URL-parameter (?_wplogin=) door zich te richten op de langst geregistreerde beheerder van de site en de andere is een anti-analyse stealth-module die inhaakt op WordPress-databasequery’s om de aanwezigheid van de frauduleuze gebruikersaccounts te verbergen voor de beheerderslijst en het totale aantal gebruikers weer te geven door ze uit te sluiten.

Een alternatieve payload (“x.js”) die wordt gehost op de infrastructuur van de plug-inontwikkelaar, wordt aan slachtoffers aangeboden met behulp van het API-eindpunt “api-data-records”. Het is ontworpen om ‘deterministische’ beheerdersreferenties te genereren die wiskundig zijn afgeleid van de hostnaam van de website van het slachtoffer.

“Dit algoritme produceert voorspelbare gebruikersnamen (bd_ gevolgd door een base36-hash van zes tekens) en wachtwoorden (Bd@26! gevolgd door de hash en x), en koppelt ze aan een @wordpress.org-e-mailadres”, aldus Wordfence. “Omdat de inloggegevens deterministisch zijn, hoeven bedreigingsactoren de lijsten met gecompromitteerde sites niet centraal op te slaan, en kunnen incidentresponders de exacte gebruikersnaam en het exacte wachtwoord berekenen waarnaar ze op verdachte domeinen moeten zoeken.”

De gegenereerde inloggegevens worden vervolgens gebruikt om een ​​kwaadwillende beheerder te creëren, en de resultaten van de aanval worden vervolgens teruggesluisd naar de C2-server.

Er wordt aangenomen dat de C2-server die in de campagne wordt gebruikt, verband houdt met twee andere aanvallen op de softwaretoevoerketen, waarbij Advanced Responsive Video Embedder (CVE-2026-18072) en OptinMonster de afgelopen maanden betrokken waren. In de twee gevallen hadden de WordPress-plug-ins een backdoor om volledige beheerderstoegang te verlenen aan niet-geverifieerde aanvallers, hetzij via een enkel hardgecodeerd token, hetzij via een verborgen beheerdersaccount en een verborgen plug-in die alleen werden gemaakt en geïnstalleerd wanneer een sitebeheerder inlogde.

Dit geeft aan dat het einddoel van de campagne het creëren van geheime administratieve persistentie en het op afstand uitvoeren van code in WordPress-omgevingen is.

“Het feit dat kwaadaardige JSON-records en de secundaire x.js-payload rechtstreeks naar de eigen bucket van de leverancier zijn geüpload, duidt op een ernstige upstream-compromis van de cloudopslagreferenties of interne infrastructuur van BdThemes”, aldus Wordfence.

De ontwikkeling komt dagen nadat WordPress een pre-authenticatie-weerspiegelde XSS-fout heeft aangepakt (CVE-2026-64638 ook bekend als XSS2Shell, CVSS-score: 8,9) die kan worden misbruikt om PHP-code-uitvoering op de server te bewerkstelligen wanneer een ingelogde beheerder interactie heeft met een door een aanvaller bestuurde pagina.

Thijs Van der Does