
Escalation di privilegi autenticata verso Admin sfruttando Uncanny Groups per LearnDash.
Uncanny Groups for LearnDash (uncanny-learndash-group) è un plugin di terze parti per LearnDash LMS (sfwd-lms). Il plugin permette ai Group Leader (ruolo personalizzato di LearnDash) di gestire gli utenti dei propri gruppi LearnDash dal frontend.
I Group Leader possono aggiungere utenti esistenti ai loro gruppi. Gli utenti esistenti vengono aggiunti automaticamente (cioè non devono accettare alcun invito).
Se l'amministratore del sito ha abilitato una funzionalità del plugin chiamata “Allow group leaders to edit users”, i Group Leader possono anche modificare i nomi e gli indirizzi email dei membri del loro gruppo (Utenti). Questa funzionalità è disabilitata per impostazione predefinita.
Un Group Leader può modificare l'indirizzo email di un Amministratore e ottenere così accesso amministrativo se l'impostazione “Allow group leaders to edit users” è abilitata. Se sfruttata in combinazione con CVE-2024-8350, tutti i Group Leader possono diventare Amministratori indipendentemente dallo stato dell'impostazione “Allow group leaders to edit users”.
Il plugin non controlla il ruolo dei membri del gruppo esistenti (Utenti) quando vengono aggiunti a nuovi gruppi. Se “Allow group leaders to edit users” è abilitata, un Group Leader può quindi ottenere privilegi di amministratore sul sito aggiungendo un Amministratore esistente al suo gruppo. Dopo aver aggiunto un Amministratore esistente al gruppo, il Group Leader si limita a cambiare l'indirizzo email dell'Amministratore e reimposta la password.
Uncanny Owl ha pubblicato una patch insufficiente (6.1.0.1) il 2024-08-26. La vulnerabilità non poteva più essere sfruttata per diventare Amministratore (tranne in combinazione con CVE-2024-8350), ma poteva ancora essere usata da qualsiasi Group Leader per diventare Editor (o inferiore). “Allow group leaders to edit users” doveva essere abilitata.
Uncanny Owl ha pubblicato una patch completa (6.1.1) il 2024-09-11.
Un Group Leader può modificare i dati di contatto di un Utente a causa di un controllo dei permessi mancante nella REST API. Se sfruttata in combinazione con CVE-2024-8349, tutti i Group Leader possono assegnarsi privilegi di amministratore.
Il plugin ha un'impostazione di permesso a livello di sito chiamata “Allow group leaders to edit users”. Quando abilitata, i Group Leader possono modificare i nomi e gli indirizzi email dei membri del loro gruppo (Utenti). Questa funzionalità è disabilitata per impostazione predefinita.
Lasciare la funzionalità disabilitata impedisce solo che l'impostazione venga visualizzata nel frontend. Un Group Leader può comunque inviare richieste POST con le stesse azioni. Poiché i Group Leader possono aggiungere tutti gli utenti ai loro gruppi, possono anche modificare i nomi e gli indirizzi email di tutti gli Utenti.
https://example.com/wp-json/ulgm_management/v1/edit_user/?
action=edit-user&group-id={Group ID}&edit-user-id={user ID}&first_name=Lorem&last_name=Ipsum&email={attacker’s email address}
(L'ID del gruppo e l'ID dell'utente possono essere trovati come parte del contenuto della pagina.)
Se sfruttata in combinazione con CVE-2024-8349, tutti i Group Leader possono assegnarsi privilegi di amministratore.
Uncanny Owl ha pubblicato una patch insufficiente (6.1.0.1) il 2024-08-26. La vulnerabilità è stata parzialmente corretta, ma, ancora una volta, solo nel frontend. L'impostazione “Allow group leaders to edit users” doveva essere abilitata.
Se un Group Leader aveva un Amministratore come parte del suo gruppo, il Group Leader non poteva più visualizzare il modale per cambiare l'indirizzo email dell'Amministratore. Tuttavia, la REST API permetteva ancora al Group Leader di farlo.
Un Group Leader poteva ancora diventare Amministratore sfruttando CVE-2024-8350 in combinazione con CVE-2024-8349. Il Group Leader doveva prima aggiungere un Editor al suo gruppo e prendere il controllo dell'account dell'Editor. Il Group Leader (ora un Editor) poteva quindi aggiungere un Amministratore dal backend di LearnDash e cambiare l'indirizzo email dell'Amministratore attraverso la REST API di Uncanny Groups.
Uncanny Owl ha pubblicato una patch completa (6.1.1) il 2024-09-11.
Uncanny Owl ha gestito bene i rapporti di vulnerabilità e ha risolto le vulnerabilità entro la finestra di divulgazione responsabile di 90 giorni.
Gli amministratori del sito dovrebbero essere consapevoli che un Group Leader del Gruppo A può aggiungere un Utente che fa parte del Gruppo B senza il consenso dell'Utente. Questo può essere un problema di riservatezza e conformità GDPR se, ad esempio, il Gruppo A e il Gruppo B sono due aziende diverse. Non è comunque una vulnerabilità poiché è così che il plugin è progettato per funzionare.