CVE-2024-55645: Bestätigungstoken für E-Mail-Änderungen in Moodle auslesbar
Ändern Nutzer ihre E-Mail-Adresse, schickt Moodle einen Bestätigungslink an die neue Adresse. Das Token aus diesem Link lag zusätzlich in den Nutzereinstellungen und war dort für die Person selbst abrufbar.
1Zusammenfassung
- Advisory
- MSA-24-0053
- System
- Moodle
- Komponente
- Nutzerprofil, E-Mail-Änderung (core_user)
- Fehlerklasse
- Offenlegung eines Tokens
- Schwere
- Minor
Verlangt eine Moodle-Website die Bestätigung neuer E-Mail-Adressen, gilt eine Änderung erst, wenn der Link aus einer Mail an die neue Adresse geöffnet wurde. Das Token in diesem Link belegt, dass die Adresse erreichbar ist und zur Person gehört.
Gespeichert war das Token als Nutzereinstellung namens newemailkey. Die eigenen Einstellungen kann jedes Konto abrufen, und so ließ sich das Token auch ohne Zugang zum Postfach der neuen Adresse beschaffen.
Gemeldet von Vincent Schneider über den Security-Prozess von Moodle, veröffentlicht als MSA-24-0053.
2Wer ist betroffen
Angemeldete Nutzer, die ihre eigene E-Mail-Adresse ändern dürfen, auf Websites mit Bestätigung der E-Mail-Änderung.
Betroffen ist nur das eigene Konto: Wer die eigene E-Mail-Adresse ändern darf, konnte die Bestätigung umgehen. Auf Websites ohne Bestätigungsschritt gab es nichts zu umgehen.
3Auswirkung
Ein Konto ließ sich so mit einer Adresse verknüpfen, die der Person gar nicht gehört, etwa der einer Kollegin oder eines anderen Unternehmens.
Benachrichtigungen und Links zum Zurücksetzen des Passworts gingen danach an diese Adresse, und Systeme, die Konten über die E-Mail-Adresse zuordnen, übernahmen eine Zuordnung, die nie geprüft wurde.
4Behebung
- Betroffene Versionen
- 4.5.0, 4.4.0 bis 4.4.4, 4.3.0 bis 4.3.8, 4.1.14 und älter
- Behoben in
- 4.5.1, 4.4.5, 4.3.9, 4.1.15
- Veröffentlicht
- 17.12.2024
- Fix im Quellcode
- bef4558
Das Token liegt jetzt als privater Nutzerschlüssel in einer eigenen Tabelle, erzeugt mit create_user_key(). Es verfällt nach zehn Minuten und wird beim Bestätigen über validate_user_key() geprüft.
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.