
Exposición de información sensible mediante asignaciones en LearnDash.
Exposición de información sensible mediante assignments en LearnDash. Los visitantes no autenticados pueden explorar y descargar los assignments subidos.
Cualquier persona, incluidos los visitantes no autenticados, puede ver todos los assignments subidos en LearnDash. Dado que los assignments son públicos, cualquiera que conozca esta vulnerabilidad puede leer los documentos subidos (lo que puede provocar incidentes de GDPR). La vulnerabilidad puede explotarse sin tener una cuenta en el sitio web.
LearnDash es un plugin de sistema de gestión de aprendizaje (LMS) para WordPress.
Las versiones afectadas de LearnDash (<=4.10.1) almacenan los archivos de assignment subidos en carpetas sin protección de acceso. Cuando un usuario sube un archivo de assignment, LearnDash lo coloca en /wp-content/uploads/assignments/. El archivo conserva su nombre original, aunque se le antepone el ID de la entrada desde la que se subió y la marca de tiempo Unix.
LearnDash tiene tres API REST: /wp/v2/, /ldlms/v1/ y /ldlms/v2/ (actualmente en beta). Todas las API, incluida la beta, están habilitadas por defecto. Las API /ldlms/v1/ y /ldlms/v2/ pueden deshabilitarse para tipos de entrada específicos mediante el filtro learndash_rest_api_enabled (consulte class-ld-rest-api.php).
Cualquier persona, incluidos los visitantes no autenticados, puede descargar cualquier archivo de assignment subido con solo conocer el nombre del archivo.
LearnDash añade una marca de tiempo al nombre de cada archivo subido para que sea más difícil adivinar el nombre, pero las marcas de tiempo se pueden forzar por fuerza bruta. Desafortunadamente, un visitante no autenticado que quiera leer los assignments subidos ni siquiera tiene que forzar nombres de archivo por fuerza bruta. Las versiones afectadas de LearnDash (<=4.10.1) publican todos los assignments enviados para visitantes no autenticados a través de la API REST. Todo lo que un visitante tiene que hacer es llamar al endpoint de sfwd-assignment a través de la API REST /wp/v2/. La respuesta incluye las rutas a los archivos subidos, y el visitante puede descargarlos sin iniciar sesión.
https://example.com/wp-json/wp/v2/sfwd-assignment
LearnDash 4.10.2 se publicó el 2024-01-08. Abordó el problema de las rutas de los archivos de assignments que se filtraban a través de la API REST. CVE-2024-1208 y CVE-2024-1210 persistieron.
LearnDash 4.10.3 se publicó el 2024-01-31. Movió la ubicación de almacenamiento de archivos a una carpeta protegida e introdujo enlaces de descarga dinámicos para impedir el acceso no autorizado.
LearnDash gestionó bien el informe de vulnerabilidad y abordó la vulnerabilidad dentro del plazo de divulgación responsable de 90 días.