Tutor LMS: le plugin de WordPress est affecté par des vulnérabilités

Les failles de sécurité de Tutor LMS, un plugin de WordPress installé sur plus de 20 000 sites, ouvrent la porte au vol d’informations et à l’élévation des privilèges, selon les chercheurs.

Tutor LMS est un système de gestion de l’apprentissage pour les éducateurs qui leur permet d’atteindre numériquement leurs élèves. Il prend en charge la création de cours, des forums étudiants, des cours multimédias et plus encore. Selon une analyse de Wordfence, il y a cinq failles critiques d’injection SQL dans le plugin, et au moins une faille de haute gravité provenant de points de terminaison AJAX non protégés.

Les failles de Tutor LMS « permettent aux attaquants d’obtenir des informations stockées dans la base de données d’un site, y compris les informations d’identification des utilisateurs, les options de site et d’autres informations sensibles », ont expliqué les chercheurs, dans un communiqué.

Les failles restantes permettent aux attaquants authentifiés d’élever leurs privilèges d’utilisateur et de modifier le contenu et les paramètres du cours, grâce à l’utilisation de diverses actions AJAX.

Les administrateurs de site doivent mettre à jour vers la version patchée, Tutor LMS v.1.8.3.

Des bugs d’injection SQL de gravité moyenne

Les cinq vulnérabilités d’injection SQL ont toutes un score de 6,5 sur 10 sur l’échelle CVSS, ce qui les rend de gravité moyenne. Les CV sont en attente pour tous.

Le premier problème d’injection SQL existe dans une fonction d’examen dans Tutor LMS qui permet aux étudiants d’évaluer leurs cours.

TutorLMS 300x200 1

Pour entrer une note, le plugin utilise une action AJAX pour traiter la demande, selon Wordfence. Si une évaluation existe déjà pour l’utilisateur et le cours actuels, il mettra à jour la note – si elle est nouvelle, elle créera un nouvel examen et une nouvelle évaluation et l’ajoutera à la base de données.

« En utilisant get_var() sans l’utilisation de prépare() lors de la vérification de l’existence d’un examen, avec aucun assainissement SQL sur les variables fournies par l’utilisateur, un utilisateur pourrait injecter des déclarations SQL arbitraires tout en laissant un examen », ont expliqué les chercheurs, ajoutant qu’un utilisateur aurait besoin d’être authentifié pour effectuer une attaque (bien que la création d’un profil d’étudiant peut être facile).

Les déclarations SQL arbitraires injectées pourraient ouvrir la porte au vol d’informations dans la base de données du site, y compris les détails de connexion pour les utilisateurs.

« Dans certains cas, lorsqu’un serveur MySQL est configuré de manière non sécurisée, cela pourrait permettre à un attaquant de lire des fichiers et de créer de nouveaux fichiers contenant des coquilles Web ainsi que de modifier des informations dans la base de données », ont ajouté les chercheurs.

Un autre problème d’injection SQL de Tutor LMS a été trouvé dans la capacité pour les enseignants de marquer les réponses comme correctes une fois qu’elles ont été soumises par un élève.

Dans ce cas, le plugin utilise une action AJAX pour récupérer la réponse initiale de l’étudiant enregistrée dans la base de données, tout en utilisant la valeur fournie par l’utilisateur à partir du paramètre POST answer_id comme id de réponse.

TutorGrades 300x159 1

« Malheureusement, il n’y a pas eu d’assainissement SQL sur la valeur fournie par l’utilisateur, pas plus que la fonction utilisant une instruction préparée, ce qui a permis d’injecter des requêtes SQL », selon Wordfence.

Les chercheurs ont ajouté: « Cette fonctionnalité était destinée à être utilisée par les enseignants et les administrateurs seulement, cependant, il s’agissait d’une action AJAX sans protection nonce ou des contrôles de capacité en place, ce qui signifiait que tout utilisateur authentifié, y compris les étudiants, avait la capacité d’exécuter cette action et d’exploiter la vulnérabilité d’injection SQL.

L’équipe de chercheurs a également trouvé trois vulnérabilités d’injection SQL UNION dans Tutor LMS. Ce type de faille se produit lorsqu’une requête SQL peut être jointe à une requête déjà existante, à l’aide d’un opérateur UNION. Les opérateurs UNION combinent les résultats de deux requêtes différentes.

« Cela diffère des deux types d’injection SQL précédents discutés parce que les données peuvent facilement être extraites en ajoutant simplement une requête supplémentaire à la requête déjà existante, grâce à l’utilisation de l’opérateur UNION », expliquent les chercheurs. « C’est l’une des formes les plus simples et les plus faciles de vulnérabilité à l’injection SQL qui puisse être exploitée. »

Les bugs SQL UNION

La première de ces vulnérabilités existe dans la fonction Tutor LMS qui permet aux enseignants de récupérer un ensemble de réponses pour une question donnée, tout en analysant la réponse des élèves.

Afin de fournir cette fonctionnalité, le plugin Tutor LMS utilise « get_results() » pour obtenir les réponses de la base de données.

« Encore une fois, il n’y a pas eu d’assainissement SQL sur l’entrée fournie par l’utilisateur, et il n’y a pas eu d’utilisation de déclarations préparés », ont déclaré les chercheurs. « Cela a permis à un attaquant de fournir une requête UNION dans le paramètre ‘question_id’ qui s’exécuterait et fournirait les résultats directs de la requête dans la réponse à la requête. »

TutorQuiz 300x191 1

Le deuxième bogue UNION de Tutor LMS réside dans la capacité de créer des quiz en tant qu’enseignant sur un site. La fonction utilise diverses actions AJAX pour faciliter le processus de création de quiz et nécessitent moins de recharges de pages.

« Lorsque le paramètre ‘question_id’ est fourni, la fonction utilise ‘get_row()’ pour obtenir les données de réponse de la base de données, » selon Wordfence. Là encore, il n’y avait pas d’assainissement SQL sur l’entrée fournie par l’utilisateur dans Tutor LMS.

« Cette fonction, ainsi que la fonction tutor_quiz_builder_get_answers_by_question() étaient destinées uniquement à l’instructeur et à l’administrateur », expliquent les chercheurs. « Malheureusement, comme il s’agissait d’actions AJAX sans protection nonce ni vérification des capacités en place, tout utilisateur authentifié, y compris les étudiants, avait la possibilité d’exécuter cette action et d’exploiter la vulnérabilité d’injection SQL. »

La dernière vulnérabilité d’injection SQL de Tutor LMS provient également de la fonctionnalité de création de quiz. Chaque fois qu’un élève répond à un quiz, le plugin enregistre les résultats, mais permet également aux élèves d’y retourner plus tard et de changer leurs réponses.

« Lors de la récupération de ces résultats, la fonction a utilisé « get_results() » pour récupérer les résultats de la base de données », selon l’analyse. « Étant donné qu’il n’y a pas eu d’échappage sql sur les réponses au quiz telles qu’elles ont été enregistrées, les déclarations sql pourraient être incluses comme réponse au questionnaire. Une fois les données récupérées dans la base de données lors de l’accès à la page de détails de la tentative, les instructions SQL stockées exécuteraient et fourniraient les informations demandées à partir de la base de données.

Des points de terminaison AJAX non protégés dans Tutor LMS

Enfin, Wordfence a découvert une série de points de terminaison AJAX non protégés dans Tutor LMS.

Ceux-ci « pourraient permettre aux utilisateurs de bas niveau comme les étudiants d’effectuer une multitude d’actions qui leur ont permis de créer de nouveaux quiz, modifier l’information sur les cours, changer les notes, élever les privilèges et plus encore », selon les chercheurs.

Le plus grave d’entre eux est le bug d’élévation de privilège de haute gravité susmentionné, qui a un score CVSS de 8,1 sur 10.

wordpress page builder tutor lms

Tutor LMS permet deux rôles : étudiant ou instructeur. Les élèves peuvent demander à devenir enseignants, et les administrateurs peuvent créer directement de nouveaux instructeurs sur un site donné.

« Malheureusement, ces deux caractéristiques ont été mises en œuvre de manière non sécurisée », selon la société de sécurité. « Malheureusement, le processus d’approbation était vulnérable en raison de l’absence d’une vérification des capacités, et les étudiants authentifiés pouvaient s’approuver eux-mêmes en tant qu’instructeurs. »

En outre, les administrateurs ont la possibilité d’ajouter de nouveaux instructeurs en dehors de la nouvelle fonctionnalité d’utilisateur WordPress standard.

« Malheureusement, il n’y a pas eu de vérification des capacités sur cette action AJAX afin que tout utilisateur authentifié puisse ajouter un nouveau compte d’instructeur et ensuite l’utiliser pour créer du contenu potentiellement malveillant sur un site », ont expliqué les chercheurs.

Les vulnérabilités des plugins de WordPress

Cette année s’annonce comme une année importante pour les problèmes de plugin WordPress, avec un nombre important de découverte dans le premier trimestre de 2021.

La semaine dernière, le plugin Plus Addons for Elementor s’est révélé avoir une vulnérabilité de sécurité critique que les attaquants peuvent exploiter pour prendre rapidement, facilement et à distance le contrôle d’un site Web. D’abord signalé comme un bug zero-day, les chercheurs ont dit qu’il est activement attaqué par des pirates informatiques.

En Février, un bogue de sécurité XSS non patché et stocké a pu affecter 50 000 utilisateurs du plugin Contact Form 7 Style.

Et en Janvier, les chercheurs ont mis en garde contre deux vulnérabilités (l’une critique) dans un plugin WordPress appelé Orbit Fox qui pourrait permettre aux attaquants d’injecter du code malveillant dans des sites Web vulnérables et/ou de prendre le contrôle d’un site Web.

Dans le même mois, un plugin appelé PopUp Builder, utilisé par les sites WordPress pour la création d’annonces pop-up pour les abonnements newsletter, s’est révélé avoir une vulnérabilité qui pourrait être exploité par les attaquants pour envoyer des bulletins d’information avec du contenu personnalisé, ou de supprimer ou d’importer des abonnés à la newsletter.

Laisser un commentaire