
Escalação de Privilégios Autenticada para Admin explorando Uncanny Groups para LearnDash.
O Uncanny Groups for LearnDash (uncanny-learndash-group) é um plugin de terceiros para o LearnDash LMS (sfwd-lms). O plugin permite que Líderes de Grupo (função personalizada do LearnDash) gerenciem usuários de seus próprios grupos LearnDash a partir do frontend.
Os Líderes de Grupo podem adicionar usuários existentes aos seus grupos. Usuários existentes são adicionados automaticamente (ou seja, não precisam aceitar nenhum convite).
Se o administrador do site ativou um recurso do plugin chamado "Allow group leaders to edit users" (Permitir que líderes de grupo editem usuários), os Líderes de Grupo também podem alterar os nomes e endereços de e-mail dos membros de seus grupos (Usuários). Esse recurso está desabilitado por padrão.
Um Líder de Grupo pode alterar o endereço de e-mail de um Administrador e, assim, obter acesso de administrador se a configuração "Allow group leaders to edit users" estiver ativada. Quando explorada juntamente com a CVE-2024-8350, todos os Líderes de Grupo podem se tornar Administradores independentemente do status da configuração "Allow group leaders to edit users".
O plugin não verifica a função dos membros existentes do grupo (Usuários) quando eles são adicionados a novos grupos. Se "Allow group leaders to edit users" estiver ativado, um Líder de Grupo pode obter privilégios de administrador no site adicionando um Administrador existente ao seu grupo. Após adicionar um Administrador existente ao grupo, o Líder de Grupo apenas altera o endereço de e-mail do Administrador e redefine a senha.
A Uncanny Owl publicou uma correção insuficiente (6.1.0.1) em 2024-08-26. A vulnerabilidade não podia mais ser explorada para se tornar Administrador (exceto em conjunto com a CVE-2024-8350), mas ainda podia ser usada para qualquer Líder de Grupo se tornar Editor (ou inferior). "Allow group leaders to edit users" tinha que estar ativado.
A Uncanny Owl publicou uma correção completa (6.1.1) em 2024-09-11.
Um Líder de Grupo pode alterar os dados de contato de um Usuário devido a uma verificação de permissão ausente na API REST. Quando explorada em conjunto com a CVE-2024-8349, todos os Líderes de Grupo podem atribuir a si mesmos privilégios de administrador.
O plugin possui uma configuração de permissão em todo o site chamada "Allow group leaders to edit users". Quando ativada, os Líderes de Grupo podem alterar os nomes e endereços de e-mail dos membros de seus grupos (Usuários). Esse recurso está desabilitado por padrão.
Desabilitar o recurso, no entanto, apenas impede que a configuração apareça no frontend. Um Líder de Grupo ainda pode enviar requisições POST com as mesmas ações. Como os Líderes de Grupo podem adicionar todos os usuários aos seus grupos, eles também podem alterar os nomes e endereços de e-mail de todos os Usuários.
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}
(O ID do grupo e o ID do usuário podem ser encontrados como parte do conteúdo da página.)
Quando explorada em conjunto com a CVE-2024-8349, todos os Líderes de Grupo podem atribuir a si mesmos privilégios de administrador.
A Uncanny Owl publicou uma correção insuficiente (6.1.0.1) em 2024-08-26. A vulnerabilidade foi parcialmente corrigida, mas, novamente, apenas no frontend. A configuração "Allow group leaders to edit users" tinha que estar ativada.
Se um Líder de Grupo tivesse um Administrador como parte de seu grupo, o Líder de Grupo não podia mais exibir o modal para alterar o endereço de e-mail do Administrador. No entanto, a API REST ainda permitia que o Líder de Grupo o fizesse.
Um Líder de Grupo ainda podia se tornar Administrador explorando a CVE-2024-8350 em conjunto com a CVE-2024-8349. O Líder de Grupo primeiro tinha que adicionar um Editor ao seu grupo e assumir o controle da conta do Editor. O Líder de Grupo (agora um Editor) podia então adicionar um Administrador a partir do backend do LearnDash e alterar o endereço de e-mail do Administrador através da API REST do Uncanny Groups.
A Uncanny Owl publicou uma correção completa (6.1.1) em 2024-09-11.
A Uncanny Owl lidou bem com os relatórios de vulnerabilidade e resolveu as vulnerabilidades dentro da janela de divulgação responsável de 90 dias.
Os administradores do site devem estar cientes de que um Líder de Grupo do Grupo A pode adicionar um Usuário que faz parte do Grupo B sem o consentimento do Usuário. Isso pode ser um problema de confidencialidade e conformidade com o GDPR se, por exemplo, o Grupo A e o Grupo B forem duas empresas diferentes. No entanto, não é uma vulnerabilidade, pois é assim que o plugin foi projetado para funcionar.
Eu enviei uma solicitação de recurso sobre como lidar com esse problema de confidencialidade em 2021. A Uncanny Owl reconsiderará agora minha solicitação de recurso. Enquanto isso, sites afetados podem implementar suas próprias soluções alternativas usando o filtro ulgm_gdpr_is_group_leader_allowed e substituições personalizadas de modelos do frontend.