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

CVE-2023-6661: Remote Code Execution über das Moodle-Protokoll

Jeder Protokolleintrag in Moodle hat ein Feld für Zusatzdaten, das auch als serialisierter PHP-Wert vorliegen kann. Beim Lesen dieses Feldes waren beliebige Klassen erlaubt, und Manager konnten so Code auf dem Server ausführen.

1Zusammenfassung

Advisory
MSA-23-0044
System
Moodle
Komponente
Protokollierung (tool_log)
Fehlerklasse
Remote Code Execution (unsichere Deserialisierung)
Schwere
Serious

Zu jedem Ereignis, etwa einer Abgabe oder einer Anmeldung, hält das Protokoll weitere Angaben fest. Je nach Eintrag liegen sie als serialisierter PHP-Wert oder als JSON vor; Moodle erkennt das Format beim Lesen.

Im PHP-Fall lief unserialize() ohne Liste erlaubter Klassen. Ein präparierter Wert im Protokoll wurde dadurch beim Auslesen zu Objekten aus dem Moodle-Code.

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

2Wer ist betroffen

Konten mit der Rolle Manager.

Laut Advisory war die Lücke in der Standardkonfiguration nur für Manager ausnutzbar.

Manager verwalten in Moodle Kurse und Konten, an den Server selbst kommen sie normalerweise nicht heran.

3Auswirkung

Über diese Lücke wird aus einem Konto der Verwaltungsoberfläche ein Zugang zum Server. Code läuft dann als Webserver-Benutzer und kann config.php lesen, womit auch die Datenbank offensteht.

Wird ein Managerkonto übernommen, etwa durch ein gestohlenes Passwort, kann sich die angreifende Person auf dem Server festsetzen, und zwar über einen späteren Passwortwechsel hinaus.

4Behebung

Betroffene Versionen
4.3.0, 4.2.0 bis 4.2.3, 4.1.0 bis 4.1.6, 4.0.0 bis 4.0.11, 3.11.0 bis 3.11.17, 3.9.24 und älter
Behoben in
4.3.1, 4.2.4, 4.1.7, 4.0.12, 3.11.18, 3.9.25
Veröffentlicht
21.12.2023
Fix im Quellcode
4b5c79f

Beim Einlesen der Zusatzdaten lässt Moodle jetzt nur noch Objekte vom Typ stdClass zu.

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.