Duplicator: grave bug di sicurezza nel plugin WordPress fino alla versione 1.2.40

Duplicator scoperta grossa falla nel plugin WordPress fino alla versione 1.2.40

Duplicator scoperta grossa falla nel plugin WordPress fino alla versione 1.2.40

È di qualche giorno fa la notizia, anche se poco diffusa ancora, della scoperta di bug di sicurezza molto serio all’interno del plugin “Duplicator” per WordPress. Duplicator è un plugin molto utilizzato, utile per clonare o migrare un intero sito WordPress.

Secondo il blog Wordfence, noto plugin WordPress dedicato alla sicurezza e alla documentazione ufficiale di Synacktiv, Duplicator è vittima di una vulnerabilità RCE (Critical Code Execution) che è stata corretta con l’ultima versione 1.2.42, disponibile dal 24 Agosto scorso.

Le versioni interessate da questo problema di sicurezza sono tutte quelle disponibili fino alla versione di Duplicator 1.2.40 compresa.

Il codice “buggato” non è presente all’interno della stessa directory (o cartella) del plugin Duplicator ma si manifesta quando si utilizza lo stesso plugin per migrare o ripristinare una copia di backup di un sito WordPress.

Come funziona Duplicator

Il plugin funziona nel seguente modo: crea il backup di un sito generando due file entrambi necessari per ripristinare il contenuto del sito. Il file .zip archiviato e lo script che lo decomprime e lo configura: installer.php.

Questi file possono essere spostati su un nuovo server e inseriti in una directory appropriata, quindi l’amministratore può visitare il file /installer.php nel proprio browser per iniziare il processo di ripristino dei file e del database.

Installer di Duplicator

Installer di Duplicator

Una volta completato il ripristino, viene richiesto al’utente di accedere al nuovo sito.

Al login, viene visualizzata la pagina seguente:

Schermata di successo migrazione sito con Duplicator

Schermata di “successo” migrazione sito con Duplicator

In questa pagina l’utente deve compilare alcuni passaggi e lo stesso sistema ricorda agli utenti di rimuovere i file rimasti dalla loro migrazione di Duplicator.

Infatti, se non si rimuovono questi file, viene visualizzato un messaggio nella dashboard di WordPress fino a quando i file non saranno stati rimossi o Duplicator verrà disinstallato.

Duplicator Dashboard

Duplicator Dashboard

Questo avviso è molto importante perché lasciare gli script di installazione in una posizione accessibile dal Web può essere MOLTO pericoloso

Il bug di Duplicator

Nel caso Duplicator non fosse stato aggiornato all’ultima release, lo script installer.php (e le copie generate, come installer-backup.php che si troveranno nella radice del sito dopo l’apertura e lo scompattamento del file .zip) scrive i valori nome utente, nome del database, password e host direttamente nel file wp-config.php senza che questi vengano prima “disinfettati” (letteralmente “sanitize”) da una sql injection che consente di scrivere i valori direttamente nel nuovo wp-config.php.

Vulnerabilità Duplicator

Vulnerabilità Duplicator

È normale che il file wp-config.php contenga questi dati in chiaro, ma il pezzo di codice malevolo inserisce un insieme di espressioni regolari per identificare le stringhe di connessione del database nel precedente file wp-config.php, quindi definisce i nuovi valori per queste stringhe.

Mentre ci sono alcune protezioni di base nello script di installazione che impediscono ad un amministratore di sovrascrivere un file wp-config.php esistente dall’interfaccia web dell’installatore, queste possono essere aggirate semplicemente fornendo il parametro POST “action_ajax=3”, dicendo efficacemente all’installer che quei controlli sono già passati.

Per quanto riguarda l’elaborazione della stringa, invece, i dati utili alla connessione di WordPress con il database vengono inseriti in modo molto prevedibile grazie ad una chiamata define() esistente nel file di configurazione, come DB_HOST o DB_USER.

Un utente malintenzionato ha la possibilità di aggiungere qualsiasi codice desiderato al file wp-config.php del sito interessato, comprese backdoor e/o possono essere eseguite attività molto dannose.

La Patch

Duplicator 1.2.42 risolve il problema andando ad aggiornare gli script generati come l’installer.php che ora usa la stringa “addslashes()” per sistemare la connessione al database immesse dagli utenti: in questo modo i malintenzionati non sono in grado di inserire codice PHP malevolo.

Inoltre durante la creazione dei backup è stata aggiunta una nuova impostazione facoltativa per consentire agli utenti di proteggere con password gli script di installazione generati. Ciò garantisce agli utenti una sicurezza aggiuntiva durante il processo di installazione chiudendo l’accesso agli script.

Tuttavia, questa opzione è nascosta da un menu comprimibile all’inizio quando si generano nuovi pacchetti, quindi gli utenti che non ne sono a conoscenza potrebbero non accorgersene. 

Duplicator Nuovo Generatore

Duplicator Nuovo Generatore

Sebbene questa patch assicuri una migliore sicurezza nella migrazione di un sito WordPress con Duplicator, ricordatevi sempre di rimuovere tutti i file di installazione una volta che questi non sono più necessari

Anche se le stringhe fornite dall’utente sono ora sicure e nel file wp-config.php viene impedito che il nuovo codice venga introdotto ed eseguito, i valori esistenti vengono comunque rimpiazzati da questo processo.

Ciò significa che se viene trovato un file installer.php con la patch ma non è protetto, un utente malintenzionato ha la possibilità di eliminare un sito semplicemente fornendo le credenziali del database MySQL errate all’installer.

Ecco cosa intendiamo per “fornire credenziali errate al database MySQL” una volta che un utente malintenzionato va a cambiare i parametri al wp-config.php. Collegandoci al nostro sito, il browser restituirà il seguente messaggio: 

Errore Database WordPress

Errore Database WordPress

Conclusioni

Invitiamo tutti ad aggiornare, se lo state utilizzando, il plugin Duplicator alla nuova versione 1.2.42, così da mettersi al riparo da questa grossa problematica

Oltre ad aggiornare il plugin è bene sapere che se avete utilizzato Duplicator in passato, dovete controllare che tutti i file del processo siano stati rimossi correttamente.

Se state utilizzando il plugin dedicato alla sicurezza Wordfence, per quanto riguarda gli utenti Premium, questi saranno i primi a ricevere l’avviso direttamente dal sistema “scan” del plugin.

Inoltre è stata aggiunta una nuova regola per proteggere gli utenti Premium WAF  (Web Application Firewall) dalla vulnerabilità di Remote Code Execution, ovviamente in questo caso però la protezione estesa deve essere attivata. 

Per gli account gratuiti di Wordfence invece, riceveranno queste regole tra circa una trentina di giorni. 

Noi di FlameNetworks ricordiamo sempre che usare plugin senza cognizione di causa può portare molti problemi, come dimostra questo bug che ha interessato Duplicator. Come si dice in questi casi: da grossi poteri derivano grosse responsabilità.

Non ci resta che darvi appuntamento al prossimo articolo.

Fonte

One Response

  1. RobertoN 27/05/2020

Rispondi all'articolo

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *


The reCAPTCHA verification period has expired. Please reload the page.