Pfad
Start / Sicherheit / CVE-2023-5539
Fehlerklasse
Remote Code Execution (unsichere Deserialisierung)
Veröffentlicht
17.10.2023
Schwere
Serious

CVE-2023-5539: Remote Code Execution in der Moodle-Aktivität Lektion

Abhängigkeiten zwischen Lektionen und Antworten auf Freitextfragen hat die Aktivität Lektion als serialisierte PHP-Werte gespeichert und mit unserialize() ohne Klassenbeschränkung zurückgelesen. Lehrende konnten darüber Code auf dem Server starten.

1Zusammenfassung

Advisory
MSA-23-0031
System
Moodle
Komponente
Lektion (mod_lesson)
Fehlerklasse
Remote Code Execution (unsichere Deserialisierung)
Schwere
Serious

Eine Lektion kann zurückgehalten werden, bis eine andere abgeschlossen oder eine Mindestnote erreicht ist. Solche Abhängigkeiten legt Moodle serialisiert in der Datenbank ab, ebenso die Antworten auf Freitextfragen.

Beim Zurücklesen durfte der gespeicherte Wert Objekte jeder Klasse aus dem Moodle-Code enthalten. Wer den Wert beeinflusst, bestimmt damit, welche Objekte beim Öffnen der Lektion entstehen, und mit passenden Klassen endet das in eigenem Code auf dem Server.

Gemeldet von Vincent Schneider über den Security-Prozess von Moodle, veröffentlicht als MSA-23-0031.

2Wer ist betroffen

Lehrende mit Bearbeitungsrechten und Manager, die Lektionen anlegen oder ändern.

Gebraucht wird nur das Recht, Lektionen zu bearbeiten, und das haben in der Standardkonfiguration Lehrende und Manager.

3Auswirkung

Eine Lehrkraft, die eigentlich nur ihre Lektion pflegen soll, bekommt Zugriff auf Dateisystem und Datenbank der gesamten Installation. Noten anderer Kurse, Konten und hochgeladene Arbeiten liegen dann offen.

4Behebung

Betroffene Versionen
4.2.0 bis 4.2.2, 4.1.0 bis 4.1.5, 4.0.0 bis 4.0.10, 3.11.0 bis 3.11.16, 3.9.23 und älter
Behoben in
4.2.3, 4.1.6, 4.0.11, 3.11.17, 3.9.24
Veröffentlicht
17.10.2023
Fix im Quellcode
ba974a4

Die Werte werden jetzt mit unserialize_object() eingelesen, das ausschließlich einfache Datenobjekte zurückgibt. Eigenschaften, die fehlen können, prüft der Code vor der Verwendung.

Diese Fehlerklasse prüfen wir in jedem Projekt, das wir bauen oder auditieren. Für fremden Code als Sicherheitsaudit.

5 / Kontakt

Sollen wir Ihre Moodle-Plugins prüfen?

Beschreiben Sie Ihr Vorhaben in drei kurzen Schritten. Wir melden uns in der Regel innerhalb eines Werktags.