
WordPress Click2Shell: Core 7.1.1 corregge l'esecuzione di codice PHP
Click2Shell è una falla CSRF nel Core di WordPress che permetteva agli attaccanti di eseguire codice PHP su un sito; è stata corretta nella versione 7.1.1 ma ora un exploit è pubblico.
WordPress Click2Shell è il nome che i ricercatori di sicurezza hanno dato a una vulnerabilità di cross-site request forgery (CSRF) nel Core di WordPress, l'insieme centrale di file che costituisce WordPress stesso, contrapposto ai plugin e ai temi che vi si aggiungono. Il bug è stato corretto nella versione 7.1.1 di WordPress, ma i dettagli tecnici e un exploit proof-of-concept funzionante sono già pubblici, il che mette sotto pressione i proprietari dei siti affinché aggiornino prontamente. CSRF è un trucco con cui un attaccante induce il tuo stesso browser, su cui hai effettuato l'accesso, a inviare una richiesta che non avevi mai intenzione di fare. Non devi scaricare nulla né digitare una password, perché il sito web si fida della richiesta come se l'avessi fatta tu.
La vulnerabilità è stata scoperta dal ricercatore di sicurezza Paulos Yibelo, che lavora presso pwn.ai, una piattaforma autonoma di penetration testing. Secondo la ricerca pubblicata, Yibelo ha segnalato il problema a WordPress il 22 agosto. La falla non ha un identificatore di sicurezza ufficiale ed è stata risolta nella versione 7.1.1 di WordPress. Il rapporto tecnico completo del ricercatore fornisce una prova di concetto completa per ottenere l'esecuzione di codice remoto lato server, ovvero la capacità di eseguire il codice dell'attaccante sulla macchina che ospita il sito web.
Il meccanismo al centro di Click2Shell, come lo descrivono i ricercatori, è che un valore proveniente da un URL di anteprima di un tema WordPress viene interpretato due volte: una dall'API dei Temi di WordPress.org, e una seconda volta da un metodo difettoso in JavaScript in esecuzione nel browser dell'amministratore. L'API dei Temi di WordPress.org è il servizio di catalogo che le installazioni WordPress contattano quando cercano temi dalla directory ufficiale, e un tema è un pacchetto di file di design e codice che cambia l'aspetto di un sito. Poiché lo stesso valore viene letto di nuovo dal JavaScript del browser, un attaccante può aggiungere un tema a un sito web bersaglio senza che l'amministratore lo installi mai. Yibelo ha anche scoperto che un tema può comunque eseguire codice PHP durante un'anteprima del Customizer anche quando è inattivo. Un'anteprima del Customizer è la schermata di WordPress che mostra un'anteprima dal vivo delle modifiche di design prima che vengano salvate. PHP è il linguaggio di programmazione in cui è scritto WordPress, quindi il codice eseguito come PHP sul server viene eseguito con i privilegi del sito web stesso.
Un attacco potrebbe iniziare con un link appositamente creato che porta all'installazione di un tema vulnerabile dal catalogo. Una volta che l'anteprima del Customizer carica il PHP di quel tema inattivo, il codice dell'attaccante viene eseguito sul server. Per dimostrare il problema, pwn.ai ha utilizzato un tema WordPress vulnerabile come secondo componente della catena. Secondo la ricerca, l'attaccante non ha bisogno di un account WordPress, di un nonce di installazione o di privilegi amministrativi propri. Un nonce è un codice di sicurezza monouso che WordPress usa per verificare che una richiesta provenga dalle sue stesse pagine e non da un attaccante, quindi il fatto che non sia richiesto è ciò che rende notevole la catena. Ciò che l'attacco richiede è che un amministratore autenticato visiti l'URL appositamente creato, il che rende la catena pre-autenticata per l'attaccante ma non automatica.
L'esecuzione di codice di questo tipo è un problema serio per un sito web. I risultati affermano che potrebbe consentire a un attaccante di modificare ed eliminare file, raggiungere i dati degli utenti e accedere a wp-config.php, il file di configurazione di WordPress memorizzato sul server che contiene le credenziali del database e i segreti di autenticazione per il sito. Con quell'accesso, un attaccante potrebbe creare account amministratore fraudolenti o iniettare script malevoli nelle pagine del sito.
Yibelo ha dimostrato Click2Shell con un particolare tema, ma la falla sottostante nel Core di WordPress 7.1.0 e versioni precedenti potrebbe essere sfruttata per forzare l'installazione di qualsiasi altro tema vulnerabile nel catalogo WordPress. L'azienda di sicurezza WordPress Patchstack ha analizzato la catena e sottolinea che solo un amministratore può attivarla, perché gli account Autore ed Editor non hanno il permesso necessario per installare temi. Patchstack avverte anche che gli attacchi sono possibili tramite phishing mirato, ovvero un'email o un messaggio progettato per persuadere un amministratore a cliccare, o tramite una falla di cross-site scripting (XSS) esistente. XSS è un bug che consente a un attaccante di eseguire codice nel browser di un'altra persona, il che in questo caso farebbe inviare la richiesta al browser dell'amministratore da solo.
WordPress ha corretto la vulnerabilità del Core nella versione 7.1.1 effettuando l'escaping dello slug del tema prima di usarlo nel selettore jQuery e limitando il selettore alle effettive schede dei temi. In parole semplici, lo slug del tema è il nome breve che identifica un tema, e un selettore jQuery è un pezzo di codice che trova elementi su una pagina; la correzione impedisce che il nome venga letto come qualcosa di diverso da un nome e impedisce che il codice corrisponda a qualcosa di diverso dalle vere schede dei temi.
Per gli amministratori che non possono installare l'aggiornamento immediatamente, Patchstack afferma che i siti web con DISALLOW_FILE_MODS abilitato non possono essere costretti a installare il tema, o un plugin malevolo. Questa impostazione impedisce a WordPress di installare o aggiornare file tramite la dashboard, il che chiude questa particolare catena, ma significa anche che gli aggiornamenti devono essere applicati in un altro modo. Passare all'ultima versione di WordPress rimane la raccomandazione forte, soprattutto ora che i dettagli tecnici completi e una prova di concetto sono pubblici. Per i proprietari di siti che preferirebbero non tenere traccia delle date di rilascio da soli, l'hosting WordPress gestito come AEU Hosting è costruito attorno alla manutenzione ordinaria della piattaforma di questo tipo, e la sua pagina del piano espone esattamente ciò che è coperto, così un lettore può verificarlo prima di farvi affidamento.
Come Proteggerti
- Aggiorna subito il tuo sito WordPress alla versione 7.1.1 accedendo alla dashboard, aprendo la schermata Aggiornamenti e cliccando il pulsante di aggiornamento.
- Attiva gli aggiornamenti automatici per WordPress se il tuo sito offre questa opzione, così le piccole correzioni di sicurezza arrivano senza che tu debba ricordartene.
- Accedi come amministratore solo quando hai effettivamente del lavoro da fare, e disconnettiti dopo invece di lasciare quella sessione aperta in una scheda del browser.
- Diffida dei link inaspettati in email o messaggi di chat, specialmente quelli che affermano di mostrarti un nuovo tema o design, anche se sembrano provenire da qualcuno che conosci.
- Se non puoi aggiornare subito, chiedi al tuo host o sviluppatore di disattivare la possibilità di installare temi e plugin sul sito fino a quando l'aggiornamento non è completato.
- Concedi al personale il livello di accesso più basso di cui ha bisogno, così solo le poche persone che ne hanno davvero bisogno possono installare temi e plugin.
I Termini Spiegati
- cross-site request forgery (CSRF) Un trucco con cui un attaccante fa inviare al tuo stesso browser, su cui hai effettuato l'accesso, una richiesta che non avevi mai intenzione di inviare, così il sito web crede che sia partita da te.
- remote code execution Quando un attaccante riesce a eseguire un proprio programma sul computer o sul server di qualcun altro.
- PHP Il linguaggio di programmazione in cui è scritto WordPress e che viene eseguito sul server web per costruire ogni pagina.
- WordPress Core L'insieme principale di file che costituisce WordPress stesso, contrapposto ai plugin e ai temi che vi si aggiungono.
- nonce Un codice di sicurezza monouso che WordPress usa per verificare che una richiesta provenga davvero dalle sue pagine e non da un attaccante.
- wp-config.php Il file di impostazioni di WordPress sul server che contiene la password del database e altre chiavi segrete per il sito.
- Customizer preview La schermata di WordPress che mostra un'anteprima dal vivo delle modifiche di design prima che tu le salvi.
- cross-site scripting (XSS) Un bug che consente a un attaccante di eseguire codice nel browser di un'altra persona, per esempio per far inviare richieste a quel browser da solo.