
Attacco alla supply chain di plugin WordPress: chiuse le estensioni BdThemes
WordPress ha bloccato il download di sette plugin BdThemes dopo che gli aggressori hanno manomesso un feed JSON per inserire account amministratore nascosti.
Un attacco alla supply chain di plugin WordPress ha portato il team dei plugin di WordPress a disattivare temporaneamente i download di sette add-on sviluppati dal fornitore BdThemes, dopo che i ricercatori della società di sicurezza Wordfence hanno scoperto che gli aggressori avevano manomesso un feed di dati remoto che quei plugin caricano nella dashboard di amministrazione di WordPress. I visitatori della scheda di ciascun plugin nella directory ufficiale dei plugin di WordPress ora vedono un avviso che dice che è stato chiuso il 7 o l'8 agosto 2026 e non è disponibile per il download in attesa di una revisione completa.
Il ricercatore di Wordfence Paolo Tresso ha detto che la campagna è diversa dal tipo di compromissione della supply chain a cui i proprietari dei siti sono abituati, perché nessun file di codice sorgente all'interno del repository WordPress.org è stato modificato. Invece, gli aggressori hanno manomesso un flusso di dati JSON statico che un componente di banner promozionale amministrativo recupera da un server remoto. JSON è un semplice formato di testo che il software usa per scambiare dati, e poiché questi plugin leggono quel testo dal server di qualcun altro invece di portarlo all'interno del proprio codice, cambiare il testo cambia ciò che fa il plugin senza toccare il plugin.
I plugin nominati da Wordfence sono Element Pack Addons for Elementor (bdthemes-element-pack-lite), che la scheda mostra con più di 100.000 installazioni attive; Live Copy Paste for Elementor (live-copy-paste) e Ultimate Store Kit, un add-on per WooCommerce, EDD ed Elementor (ultimate-store-kit), entrambi con più di 6.000 installazioni attive; e Pixel Gallery Addons for Elementor (pixel-gallery), Prime Slider Addons for Elementor (bdthemes-prime-slider-lite), Smart Admin Assistant (smart-admin-assistant) e Ultimate Post Kit Addons for Elementor (ultimate-post-kit), per i quali non sono state fornite cifre di installazione.
Secondo Wordfence, il problema risiede in un componente interno chiamato Biggopti che viene distribuito insieme ai plugin. È progettato per recuperare banner promozionali dal server API del fornitore e visualizzarli nella dashboard di amministrazione di WordPress recuperando file JSON da un bucket DigitalOcean Spaces, un servizio di archiviazione cloud. La libreria è vulnerabile a una falla di cross-site scripting (XSS) nel codice che analizza la risposta JSON, raggiungibile tramite il parametro display_id dell'API Sigmative e causata da un escaping lato client insufficiente. Il cross-site scripting significa che un aggressore può inserire il proprio codice all'interno di una pagina che una vittima carica, in modo che quel codice venga eseguito nel browser della vittima con i privilegi di quella pagina. Qui, un aggressore che riesce a compromettere l'API può iniettare script nelle pagine che vengono eseguiti ogni volta che qualcuno le apre. Poiché il componente viene eseguito a ogni caricamento di una pagina wp-admin, il codice iniettato si attiva silenziosamente nel browser di qualsiasi amministratore connesso. La falla è valutata 5.4 nel sistema di punteggio CVSS, che la colloca nella fascia di gravità media.
Wordfence afferma che la modifica è stata introdotta per la prima volta il 1° marzo 2026 in bdthemes-prime-slider-lite prima di essere applicata agli altri plugin, e che l'intero attacco è guidato attraverso l'API: non richiede alcun aggiornamento del plugin e nessun file modificato sul disco.
Wordfence ha detto che attori malevoli hanno ottenuto l'accesso in scrittura al bucket DigitalOcean Spaces e hanno sostituito le risposte JSON legittime con payload creati ad hoc. Da lì, lo script iniettato crea account amministratore malevoli, carica un plugin web shell e contatta un server di comando e controllo (C2), cioè una macchina controllata dagli aggressori che impartisce istruzioni e riceve i dati rubati. Una web shell è un piccolo script piantato su un server che consente a un aggressore di eseguire i propri comandi da remoto.
Il payload principale raggiunge i plugin attraverso un endpoint API chiamato api-data-all-records. Un file JavaScript chiamato w2.js esegue quindi le seguenti azioni, secondo Wordfence: contatta il server C2 all'indirizzo ia-cdn[.]com/fz/c, inviando l'origine del sito vittima per ottenere istruzioni di targeting, e si interrompe se quel server risponde con uno stato skip o done; crea un nuovo amministratore malevolo tramite l'API REST di WordPress; scarica un finto ZIP di plugin dal server C2 e lo installa tramite il modulo standard di caricamento dei plugin, che distribuisce una web shell PHP chiamata emer-run.php; e chiama quella web shell per collocare due moduli di persistenza nella directory dei plugin must-use (mu-plugins). I plugin must-use vengono caricati automaticamente da WordPress e sono più difficili da rimuovere di quelli ordinari. Il primo modulo è una backdoor di magic-login che consente l'accesso amministrativo non autenticato tramite un parametro URL (?_wplogin=) e prende di mira l'amministratore registrato da più tempo sul sito. Il secondo è un modulo stealth anti-analisi che si aggancia alle query del database di WordPress in modo che gli account malevoli siano nascosti dall'elenco utenti amministrativo e il conteggio utenti visualizzato li escluda.
Un secondo payload, un file chiamato x.js trovato ospitato sull'infrastruttura dello sviluppatore del plugin, viene servito alle vittime attraverso un endpoint chiamato api-data-records. È costruito per generare quelle che Wordfence chiama credenziali amministratore deterministiche, derivate matematicamente dal nome host del sito vittima. Deterministico significa che le stesse informazioni di partenza producono sempre lo stesso risultato, quindi nessuno ha bisogno di conservare un elenco dei siti compromessi per conoscere i dettagli di accesso. Wordfence ha detto che l'algoritmo produce nomi utente prevedibili, bd_ seguito da un hash base36 di sei caratteri, e password, Bd@26! seguito dall'hash e da una x, abbinate a un indirizzo email @wordpress.org. Il ricercatore ha osservato che, poiché le credenziali possono essere ricalcolate, i responder agli incidenti possono calcolare l'esatto nome utente e password da cercare sui domini sospetti invece di affidarsi a un elenco rubato. Quelle credenziali vengono usate per creare un account amministratore malevolo, e i risultati dell'attacco vengono inviati al server C2.
Wordfence valuta che il server C2 sia correlato ad altri due attacchi alla supply chain del software nei mesi recenti, uno che coinvolge Advanced Responsive Video Embedder (CVE-2026-18072) e uno che coinvolge OptinMonster. In entrambi i casi i plugin erano stati backdoorizzati per dare agli aggressori non autenticati pieno accesso amministrativo, sia tramite un singolo token hard-coded sia tramite un account amministratore nascosto e un plugin occulto creati e installati solo quando un amministratore del sito effettuava l'accesso. Wordfence legge il pattern come indicante un unico obiettivo: persistenza amministrativa occulta ed esecuzione di codice da remoto in tutti gli ambienti WordPress.
Il fatto che i record JSON malevoli e il payload secondario x.js siano stati caricati direttamente nel bucket del fornitore stesso, ha detto Wordfence, indica una grave compromissione a monte delle credenziali di archiviazione cloud o dell'infrastruttura interna di BdThemes.
La divulgazione arriva anche pochi giorni dopo che WordPress ha affrontato una falla XSS riflessa pre-autenticazione tracciata come CVE-2026-64638, nota anche come XSS2Shell, con un punteggio CVSS di 8.9. Quella falla può essere sfruttata per ottenere l'esecuzione di codice PHP sul server quando un amministratore connesso interagisce con una pagina controllata da un aggressore.
Per i proprietari dei siti, la lezione pratica dal caso BdThemes è che i file dei plugin su un server possono sembrare intatti mentre il sito è già compromesso, quindi controllare la cartella dei plugin non prova nulla da solo. La guida di Wordfence per i difensori è calcolare i nomi utente e le password deterministiche e cercarli sui siti che hanno eseguito gli add-on interessati, e rivedere gli account amministratore e la directory mu-plugins per qualsiasi cosa che il proprietario del sito non abbia inserito. Per i team che desiderano che il livello di hosting sia gestito per loro, AEU Hosting è hosting WordPress gestito, il che significa che il lato piattaforma della gestione di WordPress viene curato per il cliente, mentre gli account e i plugin di un singolo sito restano responsabilità del proprietario del sito da rivedere dopo un incidente come questo.
Come Proteggerti
- Scopri se il tuo sito usa uno dei sette plugin BdThemes elencati in questo articolo e, se lo fa, chiedi al tuo provider o al tuo sviluppatore di controllare il sito prima di qualsiasi altra cosa.
- Apri l'elenco degli utenti di WordPress e cerca account amministratore che non hai creato; se ne trovi uno, avvisa subito il tuo provider o un professionista della sicurezza.
- Esamina i plugin e i temi installati per qualsiasi cosa che non riconosci, ed evita di eliminarla da solo se non sei sicuro, perché potrebbe servire come prova.
- Conserva un backup recente del tuo sito in un posto a cui puoi accedere, così una copia pulita è pronta da ripristinare se qualcuno ha modificato le cose alle tue spalle.
- Elimina plugin, temi e account utente che non usi più, e aggiungine di nuovi solo da sviluppatori di cui ti fidi, perché codice inutilizzato o sconosciuto è la via d'ingresso più facile.
Vulnerabilità e Soluzioni
- CVE-2026-18072 The Advanced Responsive Video Embedder flaw tied to one of the earlier supply chain attacks that Wordfence links to the same command-and-control server, in which the plugin was backdoored to give unauthenticated attackers full administrative access; the source does not describe a Vedi la soluzione e i dettagli →
- CVE-2026-64638 A pre-authentication reflected cross-site scripting flaw in WordPress, also known as XSS2Shell and rated 8.9, which WordPress has addressed and which can be exploited to achieve PHP code execution on the server when a logged-in administrator interacts with an attacker-controlled Vedi la soluzione e i dettagli →
I Termini Spiegati
- JSON Un semplice formato di testo che il software usa per inviare e ricevere dati, come un modulo digitale con campi etichettati.
- cross-site scripting (XSS) Un modo per inserire il codice di un aggressore in una pagina web in modo che venga eseguito nel browser di chiunque apra quella pagina.
- CVSS Un sistema di punteggio standard che valuta quanto è grave una falla di sicurezza, da bassa a media fino a critica.
- web shell Un piccolo programma che un aggressore nasconde su un server per poter eseguire i propri comandi da remoto.
- command-and-control (C2) server Un computer controllato dagli aggressori che invia istruzioni ai siti infetti e raccoglie tutto ciò che essi restituiscono.
- mu-plugins Plugin speciali di WordPress che si attivano automaticamente e sono più difficili da rimuovere di quelli ordinari.
- deterministic Che produce sempre lo stesso risultato dalle stesse informazioni di partenza, così l'esito può essere calcolato in anticipo.