
Divulgação detalhada das CVE-2024-1208 e CVE-2024-1210: exposição de informações sensíveis via API REST no plugin LearnDash para WordPress, permitindo acesso não autenticado a questionários e perguntas.
Exposição de Informações Sensíveis via API no LearnDash. Visitantes não autenticados podem navegar pelos questionários e perguntas de questionários sem estarem inscritos em um curso conectado.
Qualquer pessoa, mesmo visitantes não autenticados, pode ver todos os questionários do LearnDash e todas as perguntas dos questionários do LearnDash. Como as perguntas dos questionários são públicas, não podem ser usadas para verificar o conhecimento de um aluno.
LearnDash é um plugin de Sistema de Gerenciamento de Aprendizagem (LMS) para WordPress. Ele suporta dois tipos diferentes de questionários. O tipo de questionário mais antigo é chamado sfwd-quiz e depende de perguntas vinculadas (sfwd-question). O tipo de questionário mais recente armazena o questionário junto com suas perguntas como posts ld-exam.
LearnDash tem 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).
As versões afetadas do LearnDash (<=4.10.2) publicam todos os questionários e perguntas de questionários para visitantes não autenticados. Um visitante pode navegar (ler) todas as perguntas chamando os endpoints para sfwd-question e ld-exam através da API REST /wp/v2/. Esta API está habilitada por padrão.
https://example.com/wp-json/wp/v2/sfwd-question
https://example.com/wp-json/wp/v2/ld-exam
Um visitante também pode navegar (ler) todos os questionários chamando o endpoint sfwd-quiz através da API /ldlms/v1/. Esta API está habilitada por padrão.
https://example.com/wp-json/ldlms/v1/sfwd-quiz
Um visitante também pode acessar questionários através da API /ldlms/v2/ se souber o ID do post do questionário (que é apenas um inteiro incremental).
As APIs /ldlms/v1/ e /ldlms/v2/ podem ser desabilitadas usando o filtro learndash_rest_api_enabled, mas isso abre um novo vazamento de dados. Se um administrador desabilitar as APIs /ldlms/v1/ e /ldlms/v2/ para qualquer tipo de post, o LearnDash publica todo o conteúdo do LearnDash acessível por API REST através da API /wp/v2/ para visitantes não autenticados, incluindo lições e tópicos.
LearnDash 4.10.2 foi lançado em 2024-01-08. Ele não resolveu os vazamentos de dados, embora tenha tornado possível desabilitar as APIs /ldlms/v1/ e /ldlms/v2/ sem revelar ainda mais informações através da API /wp/v2/.
LearnDash 4.10.3 foi lançado em 2024-01-31 e corrigiu as vulnerabilidades.
LearnDash lidou bem com os relatórios de vulnerabilidade e corrigiu as vulnerabilidades dentro da janela de divulgação responsável de 90 dias.