CVE-2024-34003: Lokale Dateieinbindung über manipulierte Workshop-Sicherungen in Moodle
Eine Workshop-Sicherung enthält die Namen der Bewertungsstrategie und der Auswertungsmethode. Moodle hat beide beim Wiederherstellen übernommen und darüber Code nachgeladen, ohne die Namen zu prüfen.
1Zusammenfassung
- Advisory
- MSA-24-0014
- System
- Moodle
- Komponente
- Gegenseitige Beurteilung (mod_workshop)
- Fehlerklasse
- Lokale Dateieinbindung (LFI)
- Schwere
- Serious
Im Workshop, auf Deutsch „Gegenseitige Beurteilung“, bewerten sich Teilnehmende untereinander. Wie bewertet wird, regelt die Bewertungsstrategie, etwa eine Rubrik. Wie aus den Beurteilungen am Ende eine Note wird, regelt die Auswertungsmethode. Beide sind Subplugins mit eigenem Unterverzeichnis.
Den Code des gewählten Subplugins lädt Moodle über dessen gespeicherten Namen. Nach einer Wiederherstellung stammten strategy und evaluation direkt aus der Sicherungsdatei und gingen so in den Pfad der einzubindenden Datei ein.
Gemeldet von Vincent Schneider über den Security-Prozess von Moodle, veröffentlicht als MSA-24-0014.
2Wer ist betroffen
Personen mit dem Recht, Workshops wiederherzustellen, die auf einem falsch eingerichteten Shared Hosting auch außerhalb des Moodle-Verzeichnisses Dateien ablegen können.
Auf einer sauber eingerichteten Installation reicht das Wiederherstellungsrecht allein nicht. Hinzukommen muss ein direkter Zugang zum Dateisystem des Servers außerhalb von Moodle, wie ihn ein schlecht getrenntes Shared Hosting anderen Kunden gewähren kann.
3Auswirkung
Trifft beides zu, führt Moodle fremden PHP-Code aus, sobald der Workshop seine Strategie oder Auswertung lädt. Der Code hat dieselben Rechte wie Moodle und erreicht damit Datenbank und Dateiablage der Instanz.
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
- e870bc0
clean_param() beschränkt beide Werte jetzt auf gültige Plugin-Namen: beim Wiederherstellen, beim Laden der Aktivität und beim Setzen der Auswertungsmethode. Ist die Strategie leer, endet der Aufruf mit einem Fehler, bevor Moodle nach einer Datei sucht.
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.