themegrill demo importer bug

WordPress: il bug di un plugin espone a rischi migliaia di siti

WordPress è uno strumento formidabile per la creazioni di siti web, non a caso è possibile installarlo con un click su tutti i piani hosting Netsons, tuttavia senza i giusti accorgimenti può essere anche molto vulnerabile. Una raccomandazione che viene fatta spesso in merito alla sicurezza dei siti WordPress è quella di tenere sempre aggiornati i plugin e cancellare (o quantomeno disattivare) quelli che non vengono utilizzati, poiché sono gli elementi più esposti a rischi e, nonostante ciò, quelli solitamente gestiti nella maniera meno corretta.

Anche tra i plugin più famosi ed utilizzati possono presentarsi delle vulnerabilità e l’ultimo caso riguarda ThemeGrill Demo Importer (oltre 200.000 installazioni attive), utilizzato per importare in WordPress versioni preimpostate dei temi a marchio ThemeGrill, così da avere praticamente dei siti già pronti da personalizzare.

Il 6 febbraio si è scoperto un bug nelle versioni dalla 1.3.4 alla 1.6.1 del plugin ThemeGrill Demo Importer, che consente ad utenti non autenticati di resettare il database dei siti WordPress per poi accedervi automaticamente con privilegi da amministratore.

Insomma, un problema piuttosto serio tenendo conto delle migliaia di installazioni in circolazione. ThemeGrill comunque si è affrettata a porvi rimedio pubblicando, il 16 febbraio, un aggiornamento del plugin (versione 1.6.2) che ha rimosso il bug.

I siti ospitati sugli hosting Netsons godono di una protezione in più, grazie ad Imunify che blocca già molti attacchi, ma poiché la prudenza non è mai troppa, se hai ThemeGrill Demo Importer installato sul tuo sito WordPress ti consigliamo di aggiornarlo subito o cancellarlo direttamente (tanto è raro che possa servire ancora dopo il primo utilizzo).

In caso di attacco avvenuto, con conseguente scomparsa del sito o un suo ritorno alle impostazioni di default, l’unica cosa da fare è ripristinare il database attraverso un backup. Se sei cliente Netsons ed hai bisogno di supporto apri un ticket dalla tua Area Clienti.

Il bug di ThemeGrill Demo Importer

Apprese le informazioni essenziali sul bug di ThemeGrill Demo Importer, scendiamo un po’ più nei dettagli e scopriamo in cosa consiste.

Alla base di tutto occorre che oltre al plugin ci sia un tema di ThemeGrill installato e attivo su WordPress, mentre l’accesso come amministratore richiede la presenza di un utente chiamato “admin” nel database (il reset del database avviene a prescindere da questa condizione).

Una volta individuato un tema ThemeGrill attivo, le versioni del plugin precedenti alla 1.6.2 caricano il file /includes/class-demo-importer.php che richiama reset_wizard_actions all’interno di admin_init sulla riga 44.

L’hook admin_init funziona sia nel contesto dell’amministrazione che sulla chiamata a /wp-admin/admin-ajax.php, che non richiede all’utente di essere autenticato.

La funzione reset_wizard_actions appare all’incirca così:

themegrill demo importer bug

Manca un check di autenticazione e soltanto il parametro do_reset_wordpress ha bisogno di essere presente nell’URL di ogni pagina admin di WordPress, incluso /wp-admin/admin-ajax.php.

La falla permette di recuperare l’oggetto utente “admin” da WordPress per poi cancellare tutte le tabelle che iniziano con il prefisso standard wp_. Una volta cancellate le tabelle, nel database vengono inserite le impostazioni e i dati di default, permettendo di accedere automaticamente come “admin”. Se nel database non esiste un utente chiamato “admin”, le tabelle rimangono semplicemente vuote e non avviene il login automatico.

Il nuovo aggiornamento risolve il bug aggiungendo a reset_wizard_actions il check current_user_can( ‘manage_options’).

themegrill demo importer bug patch

Fonti: WebARX, WordPress Italia