
Escalada de privilegios autenticada a administrador explotando Uncanny Groups para LearnDash.
Uncanny Groups for LearnDash (uncanny-learndash-group) es un plugin de terceros para LearnDash LMS (sfwd-lms). El plugin permite a los Líderes de Grupo (rol personalizado de LearnDash) gestionar los usuarios de sus propios grupos de LearnDash desde el frontend.
Los Líderes de Grupo pueden añadir usuarios existentes a sus grupos. Los usuarios existentes se añaden automáticamente (es decir, no tienen que aceptar ninguna invitación).
Si el administrador del sitio ha habilitado una función del plugin llamada “Allow group leaders to edit users”, los Líderes de Grupo también pueden cambiar los nombres y direcciones de correo electrónico de los miembros de sus grupos (Usuarios). Esta función está deshabilitada por defecto.
Un Líder de Grupo puede cambiar la dirección de correo electrónico de un Administrador y así obtener acceso de administrador si el ajuste “Allow group leaders to edit users” está habilitado. Cuando se explota en conjunto con CVE-2024-8350, todos los Líderes de Grupo pueden convertirse en Administradores independientemente del estado del ajuste “Allow group leaders to edit users”.
El plugin no comprueba el rol de los miembros de grupo existentes (Usuarios) cuando se añaden a nuevos grupos. Si “Allow group leaders to edit users” está habilitado, un Líder de Grupo puede obtener privilegios de administrador en el sitio añadiendo un Administrador existente a su grupo. Después de añadir un Administrador existente al grupo, el Líder de Grupo solo tiene que cambiar la dirección de correo electrónico del Administrador y restablecer la contraseña.
Uncanny Owl publicó un parche insuficiente (6.1.0.1) el 2024-08-26. La vulnerabilidad ya no podía explotarse para convertirse en Administrador (excepto en combinación con CVE-2024-8350), pero cualquier Líder de Grupo aún podía usarla para convertirse en Editor (o un rol inferior). “Allow group leaders to edit users” tenía que estar habilitado.
Uncanny Owl publicó un parche completo (6.1.1) el 2024-09-11.
Un Líder de Grupo puede cambiar los datos de contacto de un Usuario debido a la falta de una comprobación de permisos en la API REST. Cuando se explota en conjunto con CVE-2024-8349, todos los Líderes de Grupo pueden otorgarse privilegios de administrador.
El plugin tiene un ajuste de permisos a nivel de sitio llamado “Allow group leaders to edit users”. Cuando está habilitado, los Líderes de Grupo pueden cambiar los nombres y direcciones de correo electrónico de los miembros de sus grupos (Usuarios). Esta función está deshabilitada por defecto.
No obstante, dejar la función deshabilitada solo evita que el ajuste aparezca en el frontend. Un Líder de Grupo aún puede enviar solicitudes POST con las mismas acciones. Dado que los Líderes de Grupo pueden añadir a todos los usuarios a sus grupos, también pueden cambiar los nombres y direcciones de correo electrónico de todos los Usuarios.
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}
(El ID de grupo y el ID de usuario se pueden encontrar como parte del contenido de la página).
Cuando se explota en conjunto con CVE-2024-8349, todos los Líderes de Grupo pueden otorgarse privilegios de administrador.
Uncanny Owl publicó un parche insuficiente (6.1.0.1) el 2024-08-26. La vulnerabilidad fue parcialmente parcheada pero, una vez más, solo en el frontend. El ajuste “Allow group leaders to edit users” tenía que estar habilitado.
Si un Líder de Grupo tenía un Administrador como parte de su grupo, el Líder de Grupo ya no podía mostrar el modal para cambiar la dirección de correo electrónico del Administrador. Sin embargo, la API REST aún le permitía al Líder de Grupo hacerlo.
Un Líder de Grupo aún podía convertirse en Administrador explotando CVE-2024-8350 en conjunto con CVE-2024-8349. El Líder de Grupo primero tenía que añadir un Editor a su grupo y tomar el control de la cuenta del Editor. El Líder de Grupo (ahora un Editor) podía entonces añadir un Administrador desde el backend de LearnDash y cambiar la dirección de correo electrónico del Administrador a través de la API REST de Uncanny Groups.
Uncanny Owl publicó un parche completo (6.1.1) el 2024-09-11.
Uncanny Owl gestionó bien los informes de vulnerabilidad y abordó las vulnerabilidades dentro del plazo de divulgación responsable de 90 días.
Los administradores del sitio deben tener en cuenta que un Líder de Grupo del Grupo A puede añadir un Usuario que forma parte del Grupo B sin el consentimiento del Usuario. Esto puede ser un problema de confidencialidad y de cumplimiento del RGPD si, por ejemplo, el Grupo A y el Grupo B son dos empresas diferentes. Sin embargo, no es una vulnerabilidad, ya que es así como el plugin está diseñado para funcionar.
Envié una solicitud de funcionalidad para abordar este problema de confidencialidad en 2021. Uncanny Owl ahora reconsiderará mi solicitud de funcionalidad. Mientras tanto, los sitios afectados pueden implementar sus propias soluciones alternativas usando el filtro ulgm_gdpr_is_group_leader_allowed y sobrescrituras personalizadas de plantillas del frontend.