Bug critici su privilegi nel plugin WordPress Ultimate Member

Con oltre 100.000 installazioni attive su siti Web che utilizzano il sistema di gestione dei contenuti (CMS) di WordPress, Ultimate Member consente ai webmaster di offrire funzionalità di registrazione, login e controllo profilo per i membri. 

Secondo un rapporto pubblicato lunedì dal team di sicurezza di Wordfence, il plug-in conteneva tre vulnerabilità che potevano essere utilizzate negli attacchi di escalation dei privilegi, consentendo agli hacker di aumentare i diritti dell’account a livelli di amministratore e potenzialmente dirottare interi siti web. 

I bug sono stati trovati nella versione 2.1.11 e inferiore del plugin. Gli ID CVE sono in sospeso per ogni falla di sicurezza. 

Il primo bug – assegnato con un punteggio CVSS di 10.0, il più alto possibile – è stato trovato nel processo del modulo di registrazione utente del plug-in, poiché la mancanza di controlli su alcuni dati di input dell’utente consentiva agli aggressori di inviare meta chiavi utente arbitrarie durante il processo di registrazione.

Queste chiavi aggiorneranno quindi le informazioni del database, inclusi i parametri utilizzati per definire il ruolo e i privilegi di un utente. 

“Ciò significava che un utente malintenzionato doveva semplicemente fornire wp_capabilities [administrator] come parte di una richiesta di registrazione e che l’hacker avrebbe effettivamente aggiornato il campo wp_capabilities con il ruolo di amministratore”, afferma Wordfence. 

La seconda vulnerabilità scoperta dal team di sicurezza, anch’essa a cui è stato assegnato un punteggio CVSS di 10.0, è stata trovata nella stessa funzione. Una mancanza di filtri potrebbe indurre gli aggressori a “fornire a [se stessi] un parametro di ruolo”, ha spiegato Wordfence, e sebbene i ruoli predefiniti di WordPress fossero bloccati, questo potrebbe essere aggirato fornendo invece ruoli Ultimate Member personalizzati. 

Durante la registrazione di un parametro di ruolo, gli aggressori potrebbero assegnarsi ruoli con privilegi elevati e, se l’accesso wp-admin è abilitato per un particolare utente o ruolo, entra in gioco il terzo e ultimo bug. 

Wordfence ha scoperto un altro bug, a cui è stato assegnato un punteggio di gravità CVSS di 9,9, causato da errori di verifica sugli aggiornamenti del profilo. 

Ultimate Member consente la creazione di nuovi ruoli e consente inoltre agli amministratori del sito di assegnare ruoli secondari agli utenti. Pertanto, un utente potrebbe disporre dei diritti predefiniti al momento dell’iscrizione, ma gli potrebbe essere assegnato un ruolo secondario che gli conferisce privilegi aggiuntivi.

La funzione che facilita l’assegnazione di ruoli extra, profile_update si appoggia ad altre funzioni che non eseguono i controlli corretti, e quindi un utente malintenzionato potrebbe fornire un campo post per assegnarsi un ruolo ad alto privilegio. 

“Ciò significava che qualsiasi utente con accesso wp-admin alla pagina profile.php, esplicitamente consentito o tramite un’altra vulnerabilità utilizzata per ottenere tale accesso, poteva fornire al parametro um-role un valore impostato su qualsiasi ruolo incluso “amministratore” durante un aggiornamento del profilo e in modo efficace intensificare i loro privilegi a quelli di quel ruolo”, afferma Wordfence. 

Wordfence ha scoperto il trio di vulnerabilità tra il 19 e il 23 ottobre 2020. Dal 26 ottobre, lo sviluppatore era stato contattato e ha confermato l’esistenza dei problemi di sicurezza. 

Il 26 ottobre, lo sviluppatore ha fornito al team di Wordfence una copia con patch del software per l’analisi, ma i problemi di sicurezza persistevano. Ci sono voluti altri quattro giorni per sviluppare e distribuire una patch funzionante. 

Una correzione per la sicurezza è stata rilasciata nella versione 2.1.12 di Ultimate Member. Al momento della scrittura, oltre l’80% degli utenti ha eseguito l’aggiornamento e ora il plugin è protetto dallo sfruttamento delle vulnerabilità dell’escalation sui privilegi.