CVE-2023-28330: Lesen beliebiger Dateien über manipulierte Moodle-Sicherungen
Beim Import alter Sicherungen aus Moodle 1.9 hat das Wiki einen Dateinamen aus dem Archiv ungeprüft an einen Serverpfad angehängt. Darüber ließen sich Dateien lesen, die gar nicht zur Sicherung gehören.
1Zusammenfassung
- Advisory
- MSA-23-0005
- System
- Moodle
- Komponente
- Wiki, Import von Moodle-1.9-Sicherungen (mod_wiki)
- Fehlerklasse
- Lesen beliebiger Dateien (Path Traversal)
- Schwere
- Serious
Sicherungen aus Moodle 1.9 wandelt Moodle beim Wiederherstellen in das heutige Format um. Für ein Wiki steht darin der Name einer Datei mit dem Startinhalt, die Moodle aus dem entpackten Archiv nachlädt.
Verzeichnisangaben in diesem Namen wurden nicht entfernt. Der Pfad konnte so aus dem Archiv herausführen, und gelesen wurde dann eine beliebige Datei des Servers.
Gemeldet von Vincent Schneider über den Security-Prozess von Moodle, veröffentlicht als MSA-23-0005.
2Wer ist betroffen
Lehrende, Manager und Administratoren, sofern sie Kurse oder Aktivitäten wiederherstellen dürfen.
Die nötigen Wiederherstellungsrechte haben in der Standardkonfiguration Lehrende, Manager und Administratoren.
Die präparierte Sicherung lädt die Person selbst hoch, auf dem Server muss vorher nichts verändert worden sein.
3Auswirkung
Die wertvollste lesbare Datei ist config.php, denn sie enthält das Passwort der Moodle-Datenbank. Laufen weitere Anwendungen auf demselben Server, sind auch deren Dateien lesbar, soweit der Webserver sie öffnen darf.
Nimmt die Datenbank diese Zugangsdaten an, steht einer Lehrkraft der komplette Datenbestand der Installation offen.
4Behebung
- Betroffene Versionen
- 4.1.0 bis 4.1.1, 4.0.0 bis 4.0.6, 3.11.0 bis 3.11.12, 3.9.19 und älter
- Behoben in
- 4.1.2, 4.0.7, 3.11.13, 3.9.20
- Veröffentlicht
- 20.03.2023
- Fix im Quellcode
- 493205b
Moodle säubert den Dateinamen jetzt mit clean_param() und dem Typ PARAM_FILE, wodurch Verzeichnisangaben verschwinden. Gelesen wird nur noch innerhalb des entpackten Archivs.
Bis zum Update begrenzt es das Risiko, die Rechte zum Wiederherstellen auf vertrauenswürdige Konten zu beschränken.
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.