← Tutti gli articoli

WordPress Click2Shell: Core 7.1.1 corregge l'esecuzione di codice PHP

WordPress Click2Shell: Core 7.1.1 corregge l'esecuzione di codice PHP

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.

Disponibile anche in: EnglishDeutschShqip