
Divulgation détaillée de CVE-2024-1208 et CVE-2024-1210 : exposition d'informations sensibles via l'API REST dans le plugin WordPress LearnDash, permettant un accès non authentifié aux quiz et questions.
Exposition d'informations sensibles via l'API dans LearnDash. Les visiteurs non authentifiés peuvent parcourir les quiz et les questions de quiz sans être inscrits à un cours connecté.
Tout le monde, même les visiteurs non authentifiés, peut voir tous les quiz LearnDash et les questions de quiz LearnDash. Étant donné que les questions de quiz sont publiques, elles ne peuvent pas être utilisées pour vérifier les connaissances d'un étudiant.
LearnDash est un plugin de système de gestion de l'apprentissage pour WordPress. Il prend en charge deux types de quiz différents. L'ancien type de quiz s'appelle sfwd-quiz et repose sur des questions liées (sfwd-question). Le nouveau type de quiz stocke le quiz ainsi que ses questions sous forme de publications ld-exam.
LearnDash dispose de trois API REST : /wp/v2/, /ldlms/v1/ et /ldlms/v2/ (actuellement en version bêta). Toutes les API, y compris l'API bêta, sont activées par défaut. Les API /ldlms/v1/ et /ldlms/v2/ peuvent être désactivées pour des types de publications spécifiques à l'aide du filtre learndash_rest_api_enabled (voir class-ld-rest-api.php).
Les versions affectées de LearnDash (<=4.10.2) publient tous les quiz et toutes les questions de quiz pour les visiteurs non authentifiés. Un visiteur peut parcourir (lire) toutes les questions en appelant les points de terminaison pour sfwd-question et ld-exam via l'API REST /wp/v2/. Cette API est activée par défaut.
https://example.com/wp-json/wp/v2/sfwd-question
https://example.com/wp-json/wp/v2/ld-exam
Un visiteur peut également parcourir (lire) tous les quiz en appelant le point de terminaison sfwd-quiz via l'API /ldlms/v1/. Cette API est activée par défaut.
https://example.com/wp-json/ldlms/v1/sfwd-quiz
Un visiteur peut également accéder aux quiz via l'API /ldlms/v2/ s'il connaît l'ID de publication du quiz (qui est simplement un entier incrémental).
Les API /ldlms/v1/ et /ldlms/v2/ peuvent être désactivées à l'aide du filtre learndash_rest_api_enabled, mais cela ouvre une nouvelle fuite de données. Si un administrateur désactive les API /ldlms/v1/ et /ldlms/v2/ pour tout type de publication, LearnDash publie tout le contenu LearnDash accessible via l'API REST via l'API /wp/v2/ pour les visiteurs non authentifiés, y compris les leçons et les sujets.
LearnDash 4.10.2 est sorti le 2024-01-08. Il n'a pas corrigé les fuites de données, bien qu'il ait permis de désactiver les API /ldlms/v1/ et /ldlms/v2/ sans révéler encore plus d'informations via l'API /wp/v2/.
LearnDash 4.10.3 est sorti le 2024-01-31 et a corrigé les vulnérabilités.
LearnDash a bien géré les signalements de vulnérabilités et a corrigé les vulnérabilités dans le délai de divulgation responsable de 90 jours.