Tutor LMS für WordPress offen für Info-Stealing-Sicherheitslöcher

Cyber Security News

Das beliebte Lern-Management-System für die Lehrer-Schüler-Kommunikation ist voller SQL-Injection-Schwachstellen.

Sicherheitslücken in Tutor LMS, einem WordPress-Plugin, das auf mehr als 20.000 Websites installiert ist, öffnen Forschern zufolge die Tür für Informationsdiebstahl und Privilegieneskalation.

Tutor LMS ist ein Lernmanagementsystem für Pädagogen, mit dem sie ihre Studenten digital erreichen können. Es unterstützt den Aufbau von Kursen, Studentenforen, Multimedia-Klassen und mehr. Laut einer Analyse von Wordfence gibt es fünf kritische SQL-Injection-Fehler im Plugin und mindestens einen hochgradig gefährlichen Fehler, der von ungeschützten AJAX-Endpunkten herrührt.

Erstere “ermöglichen es Angreifern, Informationen zu erhalten, die in der Datenbank einer Website gespeichert sind, einschließlich Benutzeranmeldeinformationen, Website-Optionen und andere sensible Informationen”, erklärten die Forscher in einem Posting diese Woche.

[Blocked Image: https://media.threatpost.com/wp-content/uploads/sites/103/2019/02/19151457/subscribe2.jpg]

Die verbleibenden Schwachstellen ermöglichen es authentifizierten Angreifern, die Benutzerrechte zu erhöhen und Kursinhalte und -einstellungen zu ändern, indem sie verschiedene AJAX-Aktionen verwenden.

Site-Administratoren sollten auf die gepatchte Version, Tutor LMS v.1.8.3, aktualisieren.

SQL-Injection-Fehler mittleren Schweregrades

Die fünf SQL-Injection-Schwachstellen werden alle mit 6,5 von 10 auf der CVSS-Schwachstellenbewertungsskala bewertet und sind damit von mittlerem Schweregrad. CVEs sind für alle ausstehend.

Das erste SQL-Injection-Problem besteht in einer Bewertungsfunktion in Tutor LMS, die es Studenten ermöglicht, ihre Kurse zu bewerten.

[Blocked Image: https://media.threatpost.com/wp-content/uploads/sites/103/2021/03/17170326/TutorLMS-300x200.png]

Tutor LMS bietet eine Reihe von digitalen Lernfunktionen. Zum Vergrößern anklicken.

Um eine Bewertung einzugeben, verwendet das Plugin eine AJAX-Aktion, um die Anfrage zu verarbeiten, so Wordfence. Existiert bereits eine Bewertung für den aktuellen Benutzer und Kurs, wird die Bewertung aktualisiert – ist sie neu, wird eine neue Bewertung erstellt und zur Datenbank hinzugefügt.

“Durch die Verwendung von get_var() ohne die Verwendung von prepare() bei der Überprüfung auf die Existenz einer Bewertung, zusammen mit keiner SQL-Sanitization auf den vom Benutzer gelieferten Variablen, könnte ein Benutzer beliebige SQL-Anweisungen einschleusen, während er eine Bewertung abgibt”, erklärten die Forscher und fügten hinzu, dass ein Benutzer authentifiziert sein müsste, um einen Angriff durchzuführen (obwohl das Erstellen eines Studentenprofils einfach sein kann).

Die injizierten beliebigen SQL-Anweisungen könnten die Tür zum Abgreifen von Informationen aus der Datenbank der Website öffnen, einschließlich der Anmeldedaten der Benutzer.

“In einigen Fällen, in denen ein MySQL-Server unsicher konfiguriert ist, könnte dies einem Angreifer erlauben, Dateien zu lesen und neue Dateien zu erstellen, die Web-Shells enthalten, sowie Informationen in der Datenbank zu verändern”, fügten die Forscher hinzu.

Ein weiteres SQL-Injection-Problem wurde in der Möglichkeit für Lehrer gefunden, Antworten als korrekt zu markieren, nachdem sie von einem Schüler eingereicht wurden.

In diesem Fall verwendet das Plugin eine AJAX-Aktion, um die anfängliche Schülerantwort abzurufen, die in der Datenbank gespeichert ist, und verwendet dabei den vom Benutzer bereitgestellten Wert aus dem POST-Parameter answer_id als Antwort-ID.

[Blocked Image: https://media.threatpost.com/wp-content/uploads/sites/103/2021/03/17170613/TutorGrades-300x159.png]

Notenbücher in Tutor LMS. Klicken Sie zum Vergrößern.

“Unglücklicherweise gab es keine SQL-Sanitization für den vom Benutzer bereitgestellten Wert, und die Funktion verwendete auch keine vorbereitete Anweisung, wodurch SQL-Abfragen injiziert werden konnten”, so Wordfence.

Die Forscher fügten hinzu: “Diese Funktionalität sollte nur von Lehrern und Administratoren verwendet werden, da es sich jedoch um eine AJAX-Aktion ohne Nonce-Schutz oder Fähigkeitsprüfungen handelte, bedeutete dies, dass jeder authentifizierte Benutzer, einschließlich Studenten, die Möglichkeit hatte, diese Aktion auszuführen und die SQL-Injection-Schwachstelle auszunutzen.”

Das Team fand außerdem drei UNION-basierte SQL-Injection-Schwachstellen. Diese Art von Schwachstelle tritt auf, wenn eine SQL-Abfrage mit Hilfe eines UNION-Operators mit einer bereits bestehenden Abfrage verbunden werden kann. UNION-Operatoren kombinieren Ergebnisse von zwei verschiedenen Abfragen miteinander.

“Dies unterscheidet sich von den beiden zuvor besprochenen Typen von SQL-Injektionen, da Daten einfach durch das Hinzufügen einer zusätzlichen Abfrage zu einer bereits bestehenden Abfrage durch die Verwendung des UNION-Operators extrahiert werden können”, erklärten die Forscher. “Dies ist eine der einfachsten und leichtesten Formen einer SQL-Injection-Schwachstelle, die ausgenutzt werden kann.”

UNION-basierte SQL-Fehler

Die erste dieser Sicherheitslücken besteht in der LMS-Funktion Tutor, die es Lehrern ermöglicht, eine Reihe von Antworten für eine bestimmte Frage abzurufen, während sie die Antworten der Schüler analysieren.

Um diese Funktionalität bereitzustellen, verwendet das Plugin “get_results()”, um die Antworten aus der Datenbank zu erhalten.

“Auch hier gab es keine SQL-Sanitization für die vom Benutzer gelieferten Eingaben, und es wurden auch keine vorbereiteten Anweisungen verwendet”, so die Forscher. “Dies ermöglichte es einem Angreifer, eine UNION-Abfrage im Parameter ‘question_id’ zu übergeben, die ausgeführt wird und die direkten Ergebnisse der Abfrage in der Antwort auf die Anfrage liefert.”

[Blocked Image: https://media.threatpost.com/wp-content/uploads/sites/103/2021/03/17170428/TutorQuiz-300x191.png]

Der Tutor LMS Quiz-Builder. Zum Vergrößern anklicken.

Der zweite UNION-basierte Fehler liegt in der Möglichkeit, als Lehrer auf einer Seite Quizze zu erstellen. Die Funktion verwendet verschiedene AJAX-Aktionen, um den Prozess der Quiz-Erstellung einfach zu gestalten und weniger Seitenneuladungen zu erfordern.

“Wenn der Parameter ‘question_id’ übergeben wird, verwendet die Funktion ‘get_row()’, um die Antwortdaten aus der Datenbank zu erhalten”, so Wordfence. Auch hier gab es keine SQL-Sanitization für die vom Benutzer bereitgestellten Eingaben.

“Diese Funktion, zusammen mit der Funktion tutor_quiz_builder_get_answers_by_question(), war nur für den Gebrauch durch Dozenten und Administratoren gedacht”, erklärten die Forscher. “Da es sich jedoch um AJAX-Aktionen ohne Nonce-Schutz oder Fähigkeitsprüfungen handelte, konnte jeder authentifizierte Benutzer, einschließlich Studenten, diese Aktion ausführen und die SQL-Injection-Schwachstelle ausnutzen.”

Die letzte SQL-Injection-Schwachstelle stammt ebenfalls aus der Quiz-Erstellungsfunktion. Immer wenn ein Student ein Quiz absolviert, zeichnet das Plugin die Ergebnisse auf, erlaubt es den Studenten aber auch, später zurückzugehen und ihre Antworten zu ändern.

“Beim Abrufen dieser Ergebnisse verwendete die Funktion ‘get_results()’, um die Ergebnisse aus der Datenbank abzurufen”, heißt es in der Analyse. “Da bei der Aufzeichnung der Quiz-Antworten kein SQL-Escaping vorhanden war, konnten SQL-Anweisungen als Quiz-Antwort eingefügt werden. Sobald die Daten beim Zugriff auf die Versuchsdetailseite aus der Datenbank abgerufen wurden, wurden die gespeicherten SQL-Anweisungen ausgeführt und lieferten die angeforderten Informationen aus der Datenbank.”

Ungeschützte AJAX-Endpunkte

Und schließlich deckte Wordfence eine ganze Reihe von ungeschützten AJAX-Endpunkten auf.

Diese “konnten es Low-Level-Benutzern wie Studenten ermöglichen, eine Fülle von Aktionen auszuführen, die es ihnen erlaubten, neue Tests zu erstellen, Kursinformationen zu modifizieren, Noten zu ändern, Privilegien zu erweitern und mehr”, so die Forscher.

Die schwerwiegendste dieser Lücken ist der bereits erwähnte hochgradig gefährliche Privilegien-Eskalations-Bug, der einen CVSS-Score von 8.1 hat.

Tutor LMS erlaubt zwei Rollen: Student oder Tutor. Schüler können beantragen, Lehrer zu werden, und Administratoren können direkt neue Lehrer auf einer bestimmten Site erstellen.

“Leider waren diese beiden Funktionen unsicher implementiert”, so die Firma. “Leider war der Genehmigungsprozess aufgrund einer fehlenden Fähigkeitsprüfung angreifbar, und authentifizierte Studenten konnten sich selbst als Dozenten genehmigen.”

Zusätzlich haben Administratoren die Möglichkeit, neue Dozenten außerhalb der standardmäßigen WordPress-Funktionalität für neue Benutzer hinzuzufügen.

“Leider gab es bei dieser AJAX-Aktion keine Fähigkeitsprüfung, sodass jeder authentifizierte Benutzer ein neues Dozentenkonto hinzufügen und dieses dann verwenden konnte, um potenziell bösartige Inhalte auf einer Website zu erstellen”, erklärten die Forscher.

Die Tücken von Plugins für WordPress

Dieses Jahr entwickelt sich zu einem Bannerjahr für WordPress-Plugin-Probleme, von denen allein im ersten Quartal 2021 mehrere ans Licht kamen.

Letzte Woche wurde festgestellt, dass das Plus Addons for Elementor-Plugin eine kritische Sicherheitslücke aufweist, die Angreifer ausnutzen können, um schnell, einfach und aus der Ferne eine Website zu übernehmen. Zuerst als Zero-Day-Bug gemeldet, sagten Forscher, dass es aktiv in der Wildnis angegriffen wird.

Im Februar wurde ein ungepatchter, gespeicherter Cross-Site-Scripting (XSS)-Sicherheitsfehler gefunden, der potenziell 50.000 Benutzer des Contact Form 7 Style Plugins betrifft.

Und im Januar warnten Forscher vor zwei Schwachstellen (eine davon kritisch) in einem WordPress-Plugin namens Orbit Fox, die es Angreifern ermöglichen könnten, bösartigen Code in verwundbare Websites zu injizieren und/oder die Kontrolle über eine Website zu übernehmen.

Ebenfalls in diesem Monat wurde festgestellt, dass ein Plugin namens PopUp Builder, das von WordPress-Websites zum Erstellen von Popup-Anzeigen für Newsletter-Abonnements verwendet wird, eine Schwachstelle aufweist, die von Angreifern ausgenutzt werden könnte, um Newsletter mit benutzerdefinierten Inhalten zu versenden oder Newsletter-Abonnenten zu löschen oder zu importieren.

Registrieren Sie sich für diese LIVE-Veranstaltung: 0-Day Disclosures: Good, Bad & Ugly: Am 24. März um 14:00 Uhr ET befasst sich Threatpost mit der Frage, inwieweit die Offenlegung von Schwachstellen ein Risiko für Unternehmen wie Microsoft darstellt, die derzeit wegen 0-Day-Fehlern in Exchange-Servern auf der Hut sind. Schließen Sie sich den 0-Day-Jägern von Intel Corp. und erfahrenen Bug-Bounty-Forschern an, die die 0-Day-Ökonomie entwirren und darlegen werden, warum es für alle Unternehmen wichtig ist, sie zu verstehen. Registrieren Sie sich JETZT für dieses LIVE-Webinar am Mittwoch, 24. März.

Einige Teile dieses Artikels stammen aus:
threatpost.com