Wordfence ha bloccato 62.969 tentativi in 24 ore contro una vulnerabilità di esecuzione remota di codice in WordPress Core, dopo la pubblicazione della patch il 28 ottobre. Il problema riguarda le versioni dalla 4.7 alla 7.1.3 e consente a un aggressore non autenticato di eseguire codice sul server, se riesce ad agire durante una breve finestra del processo di aggiornamento.
La vulnerabilità ha un punteggio CVSS di 8,1 e non ha ancora un identificativo CVE. WordPress ha corretto il problema con la versione 7.1.4. Wordfence ha riferito che i tentativi di sfruttamento sono iniziati poco dopo la distribuzione di una regola firewall; Techaeris colloca il primo tentativo rilevato nove minuti dopo tale distribuzione.
L'attacco dipende dal momento giusto
Il problema riguarda l'aggiornamento completo del core di WordPress. Durante questo processo, i nuovi file vengono decompressi in una directory temporanea sotto wp-content/upgrade. Secondo Wordfence, il percorso di preparazione può essere prevedibile e accessibile dal web su molti server, e il contenuto include il programma di installazione di WordPress.
Se un aggressore richiede quel programma di installazione proprio mentre la directory è disponibile, può interagire con la copia temporanea e arrivare a eseguire codice PHP. Non basta che il sito utilizzi una versione vulnerabile: lo sfruttamento richiede che sia in corso l'installazione di un pacchetto completo, che l'albero temporaneo sia accessibile via web e PHP, che il percorso sia prevedibile o individuabile e che l'attacco si concluda prima che WordPress elimini i file temporanei.
Nei test di laboratorio, la finestra è durata appena pochi secondi. Per questo motivo, gli aggressori non si sono limitati a una singola richiesta: hanno sondato ripetutamente i percorsi vulnerabili, tra cui setup-config.php, per aumentare la possibilità di intercettare un aggiornamento in corso.
“Due delle fonti più attive hanno sondato ripetutamente piccoli gruppi di siti per circa 14,5 ore, un comportamento compatibile con il tentativo di intercettare la breve finestra di aggiornamento”.
— Alex Thomas, responsabile del team di risposta alle minacce di Wordfence
Wordfence ha inoltre osservato che altre fonti hanno testato varianti di directory temporanee e nomi di versioni. Non tutte le richieste utilizzavano il percorso vulnerabile esatto, ma la ripetizione dei sondaggi e i test di strutture specifiche indicavano che gli aggressori avevano individuato la condizione di race.
La versione 7.1.4 corregge la vulnerabilità
WordPress consiglia di installare immediatamente l'aggiornamento di sicurezza. La versione 7.1.4 è disponibile su WordPress.org o nel pannello di amministrazione, nella sezione degli aggiornamenti; i siti che supportano gli aggiornamenti automatici possono riceverla in background. Il team di WordPress ha dichiarato che si stanno preparando patch anche per i rami che ricevono ancora correzioni di sicurezza, fino alla versione 4.7.
Secondo Techaeris, la correzione della versione 7.1.4 rende casuale la directory temporanea, aggiunge una protezione dell'indice e blocca una promozione non sicura dei dati di configurazione preparati. L'aggiornamento include anche correzioni per altri problemi di sicurezza. WordPress elenca, tra questi, vulnerabilità di cross-site scripting memorizzato, l'esposizione di modifiche non pubblicate del Personalizzatore e un problema di autorizzazioni in Notes.
Secondo Techaeris, la regola firewall di Wordfence è stata distribuita circa tre ore dopo la pubblicazione dell'aggiornamento. I clienti dei piani Premium, Care e Response l'hanno ricevuta in quel momento; gli utenti gratuiti avrebbero dovuto riceverla il 27 novembre, in base al ritardo standard di 30 giorni applicato dall'azienda a queste regole.
Al momento della pubblicazione dell'articolo di Techaeris, Wordfence non aveva segnalato compromissioni confermate. I proprietari dei siti dovrebbero aggiornare alla versione 7.1.4 — o alla versione corretta corrispondente al ramo installato — e verificare la presenza di richieste sospette a file PHP all'interno di wp-content/upgrade, oltre che di account amministratore, plugin o file PHP sconosciuti.
Fonti: The Hacker News, Techaeris, WordPress News