
Exposition d'informations sensibles via les devoirs dans LearnDash.
Exposition d'informations sensibles via les devoirs dans LearnDash. Les visiteurs non authentifiés peuvent parcourir et télécharger les devoirs téléversés.
Tout le monde, y compris les visiteurs non authentifiés, peut voir tous les devoirs LearnDash téléversés. Comme les devoirs sont publics, toute personne connaissant cette vulnérabilité peut lire les documents téléversés (ce qui peut entraîner des incidents liés au RGPD). La vulnérabilité peut être exploitée sans posséder de compte sur le site web.
LearnDash est un plugin de système de gestion de l'apprentissage (LMS) pour WordPress.
Les versions concernées de LearnDash (<=4.10.1) stockent les fichiers de devoirs téléversés dans des dossiers sans protection d'accès. Lorsqu'un utilisateur téléverse un fichier de devoir, LearnDash place le fichier dans /wp-content/uploads/assignments/. Le fichier conserve son nom d'origine, bien qu'il soit préfixé par l'ID de l'article à partir duquel il a été téléversé et le timestamp Unix.
LearnDash possède trois API REST : /wp/v2/, /ldlms/v1/ et /ldlms/v2/ (actuellement en 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 d'articles spécifiques à l'aide du filtre (voir class-ld-rest-api.php).
learndash_rest_api_enabledTout le monde, y compris les visiteurs non authentifiés, peut télécharger n'importe quel fichier de devoir téléversé simplement en connaissant son nom.
LearnDash ajoute un timestamp au nom de chaque fichier téléversé pour rendre le nom plus difficile à deviner, mais les timestamps peuvent être forcés par brute-force. Malheureusement, un visiteur non authentifié souhaitant lire les devoirs téléversés n'a même pas besoin de forcer les noms de fichiers. Les versions concernées de LearnDash (<=4.10.1) publient tous les devoirs soumis pour les visiteurs non authentifiés via l'API REST. Il suffit au visiteur d'appeler le point de terminaison pour sfwd-assignment via l'API REST /wp/v2/. La réponse inclut les chemins vers les fichiers téléversés, et le visiteur peut les télécharger sans se connecter.
https://example.com/wp-json/wp/v2/sfwd-assignment
LearnDash 4.10.2 a été publié le 2024-01-08. Il a corrigé le problème de fuite des chemins de fichiers de devoirs via l'API REST. Les CVE-2024-1208 et CVE-2024-1210 persistaient.
LearnDash 4.10.3 a été publié le 2024-01-31. Il a déplacé l'emplacement de stockage des fichiers vers un dossier protégé et introduit des liens de téléchargement dynamiques pour interdire les accès non autorisés.
LearnDash a bien géré le rapport de vulnérabilité et a corrigé la vulnérabilité dans les 90 jours de la fenêtre de divulgation responsable.