Compromissione della catena di fornitura del plugin WordPress BdThemes

Compromissione della catena di fornitura del plugin WordPress BdThemes

I ricercatori di sicurezza avvertono che un feed JSON avvelenato nei plugin WordPress BdThemes crea silenziosamente account amministratore fraudolenti e installa una web shell sui siti colpiti.

Un attacco alla catena di fornitura contro i plugin WordPress BdThemes ha portato il team dei plugin di WordPress a disabilitare temporaneamente i download, secondo i ricercatori di Wordfence. Un attacco alla catena di fornitura è un attacco che compromette un fornitore di software fidato o il suo meccanismo di distribuzione per raggiungere molti utenti a valle. L'azienda ha affermato che l'attacco non ha modificato alcun file di codice sorgente nel repository ufficiale WordPress.org. Invece, gli attaccanti hanno avvelenato un flusso di dati JSON remoto che un componente amministrativo di banner promozionale recuperava, consentendo l'esecuzione di codice malevolo all'interno dell'area di amministrazione di WordPress. JSON, abbreviazione di JavaScript Object Notation, è un formato di testo semplice che i siti web utilizzano per scambiare dati.

I plugin interessati sono Element Pack Addons for Elementor (bdthemes-element-pack-lite, oltre 100.000 installazioni attive), Live Copy Paste for Elementor (live-copy-paste, oltre 6.000 installazioni attive), Pixel Gallery Addons for Elementor (pixel-gallery), Prime Slider Addons for Elementor (bdthemes-prime-slider-lite), Smart Admin Assistant (smart-admin-assistant), Ultimate Post Kit Addons for Elementor (ultimate-post-kit) e Ultimate Store Kit (ultimate-store-kit, oltre 6.000 installazioni attive). I visitatori delle pagine della directory dei plugin per questi elementi vedono un avviso che i plugin sono stati chiusi il 7 o 8 agosto 2026, in attesa di una revisione completa. Il ricercatore di Wordfence Paolo Tresso ha spiegato che la debolezza risiede in un componente interno chiamato Biggopti, che viene fornito con i plugin per recuperare banner promozionali dal server API del fornitore recuperando file JSON da un bucket DigitalOcean Spaces. Un'API, o interfaccia di programmazione delle applicazioni, è un modo per un software di richiedere dati a un altro.

La libreria Biggopti presenta una falla di cross-site scripting (XSS) nel modo in cui analizza un campo chiamato 'display_id' nelle risposte JSON dall'API Sigmative. Il cross-site scripting è una debolezza che consente a un attaccante di eseguire script malevoli nel browser di un visitatore. Poiché il codice non esegue l'escape di quel campo in modo sicuro sul lato client, un attaccante che può controllare la risposta API può iniettare script web arbitrari che vengono eseguiti ogni volta che viene visualizzata una pagina. Poiché lo script malevolo viene eseguito a ogni caricamento di una pagina wp-admin, il browser di qualsiasi amministratore connesso lo esegue silenziosamente. L'area wp-admin è il pannello di amministrazione di un sito WordPress dove i proprietari gestiscono contenuti e impostazioni. La vulnerabilità è valutata 5.4 nel sistema di punteggio CVSS, una scala standard da 0 a 10 che valuta la gravità di una falla di sicurezza. Il codice vulnerabile è stato introdotto per la prima volta il 1° marzo 2026 nel plugin bdthemes-prime-slider-lite e successivamente applicato agli altri.

Wordfence ha dichiarato che attori malintenzionati hanno ottenuto l'accesso in scrittura al bucket DigitalOcean Spaces e hanno sostituito le risposte JSON legittime con payload creati ad hoc. Ciò ha consentito di condurre l'attacco interamente tramite l'API, senza aggiornamenti dei plugin o file modificati sul disco. Il payload principale, distribuito tramite un endpoint API chiamato api-data-all-records, è un file JavaScript denominato w2.js. Tale script contatta prima un server di comando e controllo (C2) all'indirizzo ia-cdn[.]com/fz/c con l'origine del sito web vittima e si interrompe se il server restituisce uno stato skip o done. Un server C2 è un computer che gli attaccanti usano per inviare istruzioni ai siti web compromessi. Se continua, lo script utilizza l'API REST di WordPress per creare un nuovo account amministratore. Un'API REST è un insieme di regole che consente ai programmi di comunicare sul web. Quindi scarica un falso plugin ZIP dal server C2 e lo installa tramite il modulo standard di caricamento dei plugin, che distribuisce una web shell PHP denominata emer-run.php. Una web shell è uno script nascosto che consente a un attaccante di inviare comandi al server in remoto.

La web shell installa quindi due moduli di persistenza nella directory dei plugin must-use, che si caricano automaticamente e non possono essere disattivati dalla normale schermata dei plugin. Il primo modulo è una backdoor di accesso magico che consente l'accesso amministrativo non autenticato tramite un parametro URL come ?_wplogin=, prendendo di mira l'amministratore registrato da più tempo sul sito. Il secondo modulo è un componente stealth anti-analisi che si aggancia alle query del database di WordPress per nascondere gli account utente fraudolenti dall'elenco utenti amministrativo e per visualizzare il conteggio totale degli utenti senza di essi. Un secondo payload, x.js, è stato trovato ospitato sull'infrastruttura dello stesso sviluppatore del plugin e servito alle vittime tramite un endpoint API chiamato api-data-records. Questo payload genera credenziali amministratore deterministiche derivate matematicamente dal nome host del sito web vittima. Wordfence ha affermato che l'algoritmo produce nomi utente prevedibili nella forma bd_ seguito da un hash base36 di 6 caratteri, e password nella forma Bd@26! seguito dall'hash e dalla lettera x, abbinate a un indirizzo email @wordpress.org. Un hash base36 è un codice breve composto da lettere e numeri. Poiché le credenziali sono deterministiche, gli attaccanti non hanno bisogno di memorizzare un elenco centrale dei siti compromessi, e i responder agli incidenti possono calcolare l'esatto nome utente e password da cercare sui domini sospetti.

La società di sicurezza WordPress ha valutato che il server C2 utilizzato in questa campagna è correlato a due precedenti attacchi alla catena di fornitura software che coinvolgono il plugin Advanced Responsive Video Embedder, tracciato come CVE-2026-18072, e OptinMonster. In quei casi, i plugin erano stati backdorati per concedere pieno accesso amministrativo ad attaccanti non autenticati, sia tramite un singolo token hard-coded sia tramite un account amministratore nascosto e un plugin occulto creati solo quando un amministratore del sito effettuava l'accesso. Wordfence ritiene che l'obiettivo finale della campagna sia stabilire una persistenza amministrativa occulta e l'esecuzione di codice in 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 indica una grave compromissione a monte delle credenziali di archiviazione cloud o dell'infrastruttura interna di BdThemes.

La divulgazione arriva pochi giorni dopo che WordPress ha risolto una distinta falla XSS riflessa pre-autenticazione, CVE-2026-64638, nota anche come XSS2Shell, valutata 8.9 sulla scala CVSS. Pre-autenticazione significa che un attaccante non ha bisogno di un account per attivare la debolezza. Tale falla potrebbe essere sfruttata per ottenere l'esecuzione di codice PHP sul server quando un amministratore connesso interagisce con una pagina controllata dall'attaccante. Per i proprietari di siti WordPress, un servizio di hosting WordPress gestito come AEU Hosting può ridurre l'esposizione mantenendo aggiornati la piattaforma principale e i plugin e monitorando gli indicatori di compromissione noti, sebbene nessun provider di hosting possa rilevare un attacco alla catena di fornitura lato fornitore come questo prima che venga divulgato pubblicamente.

Come Proteggerti

  1. Controlla il tuo sito WordPress per qualsiasi add-on BdThemes per Elementor e disabilitalo fino a quando il produttore del plugin pubblica un aggiornamento corretto.
  2. Controlla la tua lista utenti di WordPress per qualsiasi account amministratore che non hai creato, specialmente nomi che iniziano con bd_, e rimuovilo.
  3. Aggiorna WordPress stesso e ogni plugin che usi, in modo da avere le ultime correzioni di sicurezza.
  4. Chiedi a un tecnico di scansionare il tuo sito per un file chiamato emer-run.php o file inattesi nella cartella dei plugin must-use e rimuoverli.
  5. Attiva l'accesso in due passaggi per ogni account amministratore per impedire che le password rubate funzionino.
  6. Controlla i log del tuo sito per connessioni a ia-cdn.com/fz/c e blocca quell'indirizzo se lo vedi.

Vulnerabilità e Soluzioni

I Termini Spiegati

  • supply chain attack Un modo per danneggiare molti utenti manomettendo software o dati di un fornitore fidato.
  • JSON Un formato di testo semplice usato per scambiare dati tra siti web e server.
  • cross-site scripting (XSS) Una debolezza che consente agli attaccanti di eseguire script malevoli nel browser di un visitatore.
  • wp-admin L'area di amministrazione di un sito WordPress dove i proprietari gestiscono contenuti e impostazioni.
  • command-and-control (C2) server Un computer usato dagli attaccanti per inviare istruzioni ai siti web compromessi.
  • web shell Uno script nascosto che dà a un attaccante il controllo remoto su un server web.
  • must-use plugins Plugin WordPress che si caricano automaticamente e non possono essere disattivati dalla normale schermata dei plugin.
  • CVSS score Un numero standard da 0 a 10 che valuta quanto è grave una vulnerabilità di sicurezza.

Servizi AEU correlati

  • AEU Panel Pannello di controllo per l'hosting gestito