La catena di exploit “wp2shell” rappresenta un evento di sicurezza critico che prende di mira l’architettura fondamentale dell’ecosistema WordPress. Si tratta di una vulnerabilità di esecuzione di codice remoto (RCE) pre-autenticazione che risiede interamente all’interno del core di WordPress. Per essere sfruttata non richiede plugin o temi di terze parti, né un accesso autenticato. Una singola richiesta HTTP appositamente costruita, diretta contro un’installazione predefinita “di serie”, può consentire a un aggressore non autenticato di ottenere il controllo completo del sistema.
La gravità di questa minaccia è evidenziata dal punteggio CVSS pari a 9,8. La CISA ha aggiunto entrambi i CVE al proprio catalogo delle vulnerabilità note sfruttate (KEV) dopo che, poco dopo la divulgazione, sono state osservate attività di sfruttamento. I dati indicano che circa il 60% delle organizzazioni che utilizzano WordPress era inizialmente vulnerabile al momento della divulgazione, con una parte significativa che esponeva questi server direttamente a Internet.
Uno sfruttamento riuscito può consentire la compromissione completa del database, l’accesso persistente al server web tramite webshell offuscate e la creazione non autorizzata di account amministrativi.
Panoramica della vulnerabilità
La catena di exploit wp2shell combina diverse vulnerabilità del core di WordPress per ottenere un'escalation di privilegi senza autenticazione. L'attacco sfrutta innanzitutto una falla nell'elaborazione delle richieste batch dell'API REST per aggirare la convalida delle richieste e i controlli di autorizzazione. Questo accesso viene poi utilizzato per sfruttare una vulnerabilità di tipo SQL injection nella gestione del parametro author_exclude da parte di WP_Query.
Utilizzando la tecnica di iniezione SQL, un aggressore può manipolare gli oggetti WordPress memorizzati nella cache e sfruttare il meccanismo di caching di oEmbed per reinserire dati dannosi nel database. L’exploit sfrutta quindi la funzionalità dei changeset di Customizer per ereditare temporaneamente i permessi di un account amministratore, creando infine un utente amministrativo persistente.
In sintesi, l’attacco si sviluppa in quattro fasi:
Se combinate tra loro, queste vulnerabilità possono consentire a un aggressore non autenticato di ottenere il pieno controllo amministrativo di un'installazione WordPress vulnerabile.
In questo exploit vengono sfruttate le seguenti vulnerabilità del core di WordPress:
Versioni interessate e versioni corrette
|
Ramo |
Versioni interessate |
Versioni corrette |
Profilo dell'impatto |
|
WordPress 7.0.x |
7.0.0 – 7.0.1 |
7.0.2 |
Catena RCE completa |
|
WordPress 6.9.x |
6.9.0 – 6.9.4 |
6.9.5 |
Catena RCE completa |
|
WordPress 6.8.x |
6.8.0 – 6.8.5 |
6.8.6 |
Solo SQL Injection |
|
WordPress 7.1 (Beta) |
7.1 Beta 1 |
7.1 Beta 2 |
Catena RCE completa |
Valutazione strategica: Rischi di WordPress
Storicamente, la sicurezza di WordPress si è concentrata sul «perimetro dei plugin». Questo attacco dimostra che rischi significativi per la sicurezza possono avere origine all’interno del core di WordPress e non esclusivamente attraverso estensioni di terze parti. Le organizzazioni dovrebbero assicurarsi che le istanze di WordPress siano integrate in programmi formali di gestione delle vulnerabilità e delle patch.
Da un punto di vista difensivo, WordPress dovrebbe essere considerato un obiettivo di alto valore. La sua diffusione capillare negli ambienti connessi a Internet lo rende una piattaforma allettante per gli autori delle minacce, aumentando la probabilità di ricerche sulle vulnerabilità, scansioni automatizzate e tentativi di sfruttamento.
Pilastri della governance strategica
Ricerca delle minacce e indicatori di compromissione (IoC)
Segnali di rete
Elementi basati sull’host
IOC noti
|
Tipo di IOC |
Indicatore |
Descrizione |
|
Indirizzo IP |
34.81.132.62 |
Tentativo di sfruttamento |
|
Indirizzo IP |
79.177.131.206 |
Tentativo di exploit |
|
Indirizzo IP |
15.157.135.170 |
Tentativo di exploit |
|
Indirizzo IP |
94.100.52.128 |
Tentativo di exploit |
|
Indirizzo IP |
172.235.128.52 |
Scansione di massa |
|
Hash SHA-1 |
2a1410d8e2a8337ac2171cedea8c0fdc47c647a0 |
Plugin CMSmap offuscato |
|
Hash SHA-1 |
58eca847e9eae9e6b08cc211f1559817b71bc4cc |
Webshell PHP |
|
Hash SHA-1 |
ebea44890f434d5d67ede22009a3f4bb5cac33f8 |
Webshell PHP |
|
Hash SHA-1 |
d9a220c8039f1c4d72cae7ccb8b3a33dec8815be |
Webshell PHP |
|
Hash SHA-1 |
e9756e2338f84746007235e4cab7a70d5b3ca47f |
Webshell PHP |
Misure di mitigazione e di bonifica
Le organizzazioni devono aggiornareimmediatamente il core di WordPress alle versioni 7.0.2, 6.9.5 o 6.8.6. Sebbene WordPress.org abbia imposto aggiornamenti automatici, gli amministratori devono "fidarsi ma verificare" queste installazioni, poiché il completamento dell'aggiornamento automatico non è garantito su tutte le configurazioni di hosting. È necessario dare priorità alle istanze sui rami 6.9.x e 7.0.x, che sono vulnerabili alla catena completa di RCE.
Misure di mitigazione temporanee
Laddove non sia possibile applicare immediatamente le patch, gli amministratori dovrebbero implementare regole WAF per bloccare l’accesso non autenticato agli endpoint batch dell’API REST interessati. La decodifica degli URL dovrebbe essere eseguita prima della corrispondenza delle regole per rilevare le richieste codificate.
Endpoint bloccati:
Azioni successive alla compromissione
Se vi sono motivi per ritenere che si sia verificato uno sfruttamento, si raccomandano le seguenti azioni:
Se siete preoccupati per una qualsiasi delle minacce descritte in questo bollettino o avete bisogno di aiuto per determinare quali misure adottare per proteggervi dalle minacce più rilevanti che la vostra organizzazione deve affrontare, contattate il vostro account manager o, in alternativa, mettetevi in contatto con noi per scoprire come proteggere la vostra organizzazione.