CVE-2024-34005: Lokale Dateieinbindung über manipulierte Datenbank-Sicherungen in Moodle
Jedes Feld der Datenbank-Aktivität hat einen Typ, und unter diesem Namen lädt Moodle die passende Feldklasse. Stammte der Typ aus einer Sicherungsdatei, wurde er ungeprüft Teil des Dateipfads.
1Zusammenfassung
- Advisory
- MSA-24-0016
- System
- Moodle
- Komponente
- Datenbank-Aktivität (mod_data)
- Fehlerklasse
- Lokale Dateieinbindung (LFI)
- Schwere
- Serious
Mit der Datenbank-Aktivität bauen Lehrende eigene Sammlungen aus Feldern wie Text, Datum, Bild oder Menü. Die Logik eines Feldtyps steckt in einer Datei field.class.php in einem Unterverzeichnis, das den Namen des Typs trägt.
Beim Wiederherstellen übernahm Moodle den Typ aus der Sicherung, ohne ihn zu bereinigen. Sobald Moodle später die Felder der Aktivität lud, ergab sich daraus der Pfad der Datei, die eingebunden wurde.
Gemeldet von Vincent Schneider über den Security-Prozess von Moodle, veröffentlicht als MSA-24-0016.
2Wer ist betroffen
Wer Datenbank-Aktivitäten wiederherstellen darf und zugleich, auf einem falsch eingerichteten Shared Hosting, außerhalb des Moodle-Verzeichnisses Dateien ablegen kann.
Die Hürde ist hoch. Neben dem Recht, Datenbank-Aktivitäten wiederherzustellen, braucht es direkten Zugriff auf den Webserver außerhalb des Moodle-Verzeichnisses, und den gibt es nur auf Shared Hosting, das Kunden fälschlich Zugriff auf fremde Inhalte gewährt.
3Auswirkung
Wird eine fremde Datei als Feldklasse eingebunden, läuft ihr Code mit den Rechten von Moodle auf dem Server.
4Behebung
- Betroffene Versionen
- 4.3.0 bis 4.3.3, 4.2.0 bis 4.2.6, 4.1.9 und älter
- Behoben in
- 4.3.4, 4.2.7, 4.1.10
- Veröffentlicht
- 13.05.2024
- Fix im Quellcode
- ffa045e
Der Feldtyp wird jetzt auf Buchstaben reduziert, beim Wiederherstellen und überall dort, wo Moodle eine Feldklasse lädt. Dazu gehört auch der CSV-Import von Einträgen, der ebenfalls Feldklassen lädt.
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.