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.