Vulnerabilità Zero-Day nel plugin Duplicator per WordPress

0
469

Il 19 febbraio 2020, WordFence ha riportato una vulnerabilità altamente critica rinvenuta nel popolare plugin Duplicator per WordPress.

Duplicator è un plugin molto utile per quegli utenti che vogliano migrare/copiare isiti WordPress. Con Duplicator, gli amministratori possono creare una nuova copia del sito ed il file di backup generato può essere scaricato dalla dashobard di WP.

La vulnerabilità Zero-Day del plugin Duplicator.

Lo sfruttamento della vulnerabilità zero-day scoperta consente agli hacker di scaricare arbitrariamente file dai siti target. Più di 1 milione di siti web WordPress sono affetti da questo problema di sicurezza.

Quando un utente crea una copia di un sito WP e fa clic sul pulsante “Download”, viene chiamato l’handler AJAX di WordPress con l’azione duplicator_download ed il parametro file.

Sfortunatamente l’azione duplicator_download era registrata attraverso wp_ajax_nopriv_ ed era quindi accessibile ad utenti non autenticati. A peggiorare le cose, non era prevista una validazione volta a limitare i percorsi da cui era possibile scaricare i file.

Il parametro file è passato attraverso sanitize_text_field e aggiunto alla costante del plugin DUPLICATOR_SSDIR_PATH, tuttavia era ancora possibile un attacco di tipo “Directory Traversal“. Un attaccante potrebbe accedere a file esterni alla cartella di Duplicator, inviando valori come ../../../file.php per navigare attraverso la struttura delle cartelle del server.

WordFence
function
duplicator_init() {
    if
(isset($_GET['action']) && $_GET['action'] == 'duplicator_download') {
        $file
= sanitize_text_field($_GET['file']);
        $filepath
= DUPLICATOR_SSDIR_PATH.'/'.$file;
        // Process download
        if(file_exists($filepath)) {
            // Clean output buffer
            if
(ob_get_level() !== 0 && @ob_end_clean() === FALSE) {
                @ob_clean();
            }
 
            header('Content-Description: File Transfer');
            header('Content-Type: application/octet-stream');
            header('Content-Disposition: attachment; filename="'.basename($filepath).'"');
            header('Expires: 0');
            header('Cache-Control: must-revalidate');
            header('Pragma: public');
            header('Content-Length: '
. filesize($filepath));
            flush(); // Flush system output buffer
 
            try
{
                $fp
= @fopen($filepath, 'r');
                if
(false === $fp) {
                    throw
new
Exception('Fail to open the file '.$filepath);
                }
                while
(!feof($fp) && ($data
= fread($fp, DUPLICATOR_BUFFER_READ_WRITE_SIZE)) !== FALSE) {
                    echo
$data;
                }
                @fclose($fp);
            } catch
(Exception $e) {
                readfile($filepath);
            }
            exit;
        } else
{
            wp_die('Invalid installer file name!!');
        }
    }
}
add_action('init', 'duplicator_init');

Quali sono i segni di avvenuto sfruttamento di questa vulnerabilità?

Il ritrovamento delle seguenti stringhe in una richiesta GET indica che, molto probabilmente, il sito è stato oggetto di attenzione da parte degli hacker.

  • action=duplicator_download
  • file=/../wp-config.php

Se il tuo sito è su Host, è al sicuro

Se il tuo sito è su Host.it non hai nulla da temere, infatti tutti i nostri nuovi profili di hosting condiviso (Host Agile, Smart, Genius, 4.0 e 5.0) e di cloud hosting (Host Cloud) sono protetti da Cerbero un sofisticato sistema di protezione che include un innovativo Web Application Firewall.

Le definizioni di Cerbero sono state aggiornate immediatamente per prevenire e bloccare gli attacchi tesi a sfruttare la vulnerabilità di Duplicator su WordPress.

LASCIA UN COMMENTO

Please enter your comment!
Per favore inserisci il tuo nome qui