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

CVE-2023-5540: Remote Code Execution in der Moodle-Aktivität IMS-Content-Paket

Das Inhaltsverzeichnis eines IMS-Content-Pakets speichert Moodle nach dem Hochladen als serialisierten Wert. Beim erneuten Einlesen fehlte jede Typprüfung, was Lehrenden die Ausführung von eigenem Code auf dem Server erlaubte.

1Zusammenfassung

Advisory
MSA-23-0032
System
Moodle
Komponente
IMS-Content-Paket (mod_imscp)
Fehlerklasse
Remote Code Execution (unsichere Deserialisierung)
Schwere
Serious

Ein IMS-Content-Paket ist ein Archiv mit Lernmaterial und einem Inhaltsverzeichnis. Moodle liest diese Struktur beim Hochladen aus, speichert sie und verwendet sie für Anzeige und Export wieder.

Erwartet wird dort eine einfache verschachtelte Liste. unserialize() hat aber jeden Wert akzeptiert, auch Objekte beliebiger Klassen, und damit eine PHP Object Injection möglich gemacht.

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

2Wer ist betroffen

Lehrende mit Bearbeitungsrechten und Manager, wenn sie IMS-Content-Pakete anlegen oder bearbeiten.

In der Standardkonfiguration trifft das Lehrende und Manager, weil sie diesen Aktivitätstyp in ihren Kursen anlegen dürfen.

3Auswirkung

Wer ein Paket hochladen durfte, konnte auf diesem Weg Befehle mit den Rechten des Webservers ausführen. Ab da spielt die Kurszugehörigkeit keine Rolle mehr, weil Konfiguration, Datenbank und Dateiablage der Website direkt erreichbar sind.

4Behebung

Betroffene Versionen
4.2.0 bis 4.2.2, 4.1.0 bis 4.1.5, 4.0.0 bis 4.0.10, 3.11.0 bis 3.11.16, 3.9.23 und älter
Behoben in
4.2.3, 4.1.6, 4.0.11, 3.11.17, 3.9.24
Veröffentlicht
17.10.2023
Fix im Quellcode
3400ae6

Zum Einlesen nutzt Moodle jetzt unserialize_array(). Die Funktion liefert nur Arrays mit einfachen Werten und lehnt Objekte ab.

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.