Une vulnérabilité de piratage de session dans la plate-forme d’apprentissage en ligne extrêmement populaire Moodle a permis aux attaquants de réquisitionner la session de n’importe quel utilisateur et de réaliser l’exécution de code à distance (RCE), ont révélé des chercheurs en sécurité.
Les mainteneurs de la plate-forme open source ont corrigé la faille critique l’année dernière, protégeant ainsi 213 millions d’utilisateurs dans 241 pays et clients, dont Shell, Microsoft et la London School of Economics.
La faille non authentifiée (CVE-2021-40691) réside dans le plug-in de gestion des identités Shibboleth de Moodle en raison de « la surutilisation de PHP session_decode fonction lorsque le gestionnaire de session de la base de données a été configuré », selon un article de blog publié par les testeurs de stylet Robin Peraglie et Johannes Moritz le 10 janvier.
Le bogue dépend de l’activation de l’authentification Shibboleth dans Moodle.
Pré-autorisation RCE… la préquelle
Les résultats s’appuient sur un autre RCE de pré-authentification que les chercheurs ont trouvé dans le même plugin l’année dernière qui a été déclenché lorsque les sessions étaient stockées dans des fichiers individuels, la configuration par défaut pour les nouvelles installations.
EN RELATION Chercheurs, tricheurs : le bogue RCE dans Moodle pourrait être utilisé pour voler des données, manipuler les résultats des examens
Tel que rapporté par La gorgée quotidiennece bogue, qui a été corrigé en juillet 2021, signifiait que les attaquants pouvaient accéder aux données et aux épreuves des étudiants, et peut-être même manipuler les résultats des examens.
Les deux vulnérabilités « proviennent des tentatives de réimplémentation ou de désordre avec les mécanismes de session internes de PHP » – une décision déconseillée « en raison de la complexité et des pièges » impliqués, ont déclaré les chercheurs.
Fraction de seconde
La faille de suivi liée à la façon dont le logout_db_session() fonction a été invoquée par chaque demande de déconnexion reçue via un point de terminaison SOAP, itérée sur toutes les sessions de base de données disponibles et lancée des sessions dans le session_decode une fonction.
Cela a décodé les données de session sérialisées de la base de données et rempli le $_SESSION superglobal avec les données décodées – connectant un attaquant comme chaque utilisateur avec une session active pendant une fraction de seconde, ont déclaré les chercheurs.
Comme la dernière session n’a pas été déchargée, $_SESSION est resté rempli avec les informations de session de l’utilisateur le plus récent. Cette session a été attribuée au cookie de session de l’attaquant en raison de session_decodeafin que l’attaquant puisse actualiser la page et détourner des sessions utilisateur aléatoires.
En savoir plus sur les dernières nouvelles sur la sécurité de l’éducation
Les attaquants pourraient se déconnecter pour supprimer les sessions non administrateur de la base de données et répéter l’attaque jusqu’à ce qu’une session administrateur fasse surface, ouvrant la voie à RCE via le programme d’installation du plug-in.
Problème de triage
Le bogue affecte les versions 3.11-3.11.2, 3.10-3.10.6 et 3.9-3.9.9 et a été résolu dans 3.11.3, 3.10.7 et 3.9.10.
Ils ont soumis le bogue via Bugcrowd le 21 février et un correctif a été publié sur GitHub le 12 septembre.
Ils ont décrit le processus de signalement comme « extrêmement fastidieux en raison de problèmes de compréhension et de reproduction du problème du côté de Bugcrowd ». Comme pour le bogue précédent, il a fallu quatre mois pour que le rapport parvienne à Moodle via le triage.
Abby Fry, responsable des communications chez Moodle, a déclaré La gorgée quotidienne: « Notre LMS Moodle [learning management system] L’équipe a indiqué que bien que les problèmes de sécurité puissent être signalés à la fois directement à Moodle ou via notre formulaire de soumission (qui est lié à notre programme de divulgation des vulnérabilités Bugcrowd), ce dernier est toujours préféré et notre méthode de soumission recommandée. Cela garantit à la fois des soumissions plus complètes (car elles doivent inclure des détails spécifiques dans le formulaire) et maximise les ressources disponibles pour examiner les soumissions (en tirant parti de l’équipe de triage de Bugcrowd).
«Du côté des chercheurs, cela garantit généralement que les soumissions sont triées plus efficacement, et au sein de Moodle, cela nous aide à concentrer notre énergie sur l’enquête et la résolution de tout problème confirmé en minimisant le temps passé à gérer les doublons, les faux positifs et le spam.
« Bien que malheureusement, dans ce cas, le délai de triage / escalade pour ce chercheur ait été plus long que souhaité, le temps moyen de triage pour toutes les soumissions est d’environ cinq jours, et il y a eu des améliorations progressives du processus depuis que cette soumission a été faite dans les premiers mois de la programme (y compris en interne, pour assurer une meilleure visibilité et une meilleure réponse aux retards ou blocages).
TU POURRAIS AUSSI AIMER L’extension de navigateur anti-triche échoue à l’examen de sécurité Web