
Exposição de Informações Sensíveis através de tarefas no LearnDash.
Exposição de Informações Sensíveis via tarefas no LearnDash. Visitantes não autenticados podem navegar e baixar tarefas enviadas.
Qualquer pessoa, incluindo visitantes não autenticados, pode ver todas as tarefas do LearnDash enviadas. Como as tarefas são públicas, qualquer pessoa que saiba dessa vulnerabilidade pode ler os documentos enviados (causando potenciais incidentes de GDPR). A vulnerabilidade pode ser explorada sem ter uma conta no site.
LearnDash é um plugin de Sistema de Gerenciamento de Aprendizagem para WordPress.
As versões afetadas do LearnDash (<=4.10.1) armazenam arquivos de tarefas enviados em pastas sem proteção de acesso. Quando um usuário envia um arquivo de tarefa, o LearnDash coloca o arquivo em /wp-content/uploads/assignments/. O arquivo mantém seu nome original, embora seja prefixado com o ID do post de onde foi enviado e o carimbo de data/hora Unix.
O LearnDash possui três APIs REST: /wp/v2/, /ldlms/v1/ e /ldlms/v2/ (atualmente em beta). Todas as APIs, incluindo a API beta, estão habilitadas por padrão. As APIs /ldlms/v1/ e /ldlms/v2/ podem ser desabilitadas para tipos de post específicos usando o filtro learndash_rest_api_enabled (veja class-ld-rest-api.php).
Qualquer pessoa, incluindo visitantes não autenticados, pode baixar qualquer arquivo de tarefa enviado apenas sabendo o nome do arquivo.
O LearnDash anexa um carimbo de data/hora ao nome de cada arquivo enviado para dificultar a adivinhação do nome, mas os carimbos de data/hora são passíveis de força bruta. Infelizmente, um visitante não autenticado que deseja ler as tarefas enviadas nem precisa usar força bruta para nomes de arquivos. As versões afetadas do LearnDash (<=4.10.1) publicam todas as tarefas submetidas para visitantes não autenticados através da API REST. Tudo o que um visitante precisa fazer é chamar o endpoint para sfwd-assignment através da API REST /wp/v2/. A resposta inclui caminhos para os arquivos enviados, e o visitante pode baixá-los sem fazer login.
https://example.com/wp-json/wp/v2/sfwd-assignment
LearnDash 4.10.2 foi lançado em 2024-01-08. Ele abordou o problema do vazamento dos caminhos dos arquivos de tarefa através da API REST. CVE-2024-1208 e CVE-2024-1210 persistiram.
LearnDash 4.10.3 foi lançado em 2024-01-31. Ele moveu o local de armazenamento dos arquivos para uma pasta protegida e introduziu links dinâmicos de download para proibir acesso não autorizado.
O LearnDash lidou bem com o relatório de vulnerabilidade e resolveu a vulnerabilidade dentro da janela de divulgação responsável de 90 dias.