
Authentifizierte Privilegieneskalation zum Administrator durch Ausnutzung von Uncanny Groups für LearnDash.
Uncanny Groups for LearnDash (uncanny-learndash-group) ist ein Drittanbieter-Plugin für LearnDash LMS (sfwd-lms). Das Plugin ermöglicht es Gruppenleitern (einer benutzerdefinierten LearnDash-Rolle), Benutzer ihrer eigenen LearnDash-Gruppen über das Frontend zu verwalten.
Gruppenleiter können vorhandene Benutzer zu ihren Gruppen hinzufügen. Vorhandene Benutzer werden automatisch hinzugefügt (d.h. sie müssen keine Einladungen annehmen).
Wenn der Site-Administrator eine Plugin-Funktion namens „Allow group leaders to edit users“ aktiviert hat, können Gruppenleiter auch die Namen und E-Mail-Adressen ihrer Gruppenmitglieder (Benutzer) ändern. Diese Funktion ist standardmäßig deaktiviert.
Ein Gruppenleiter kann die E-Mail-Adresse eines Administrators ändern und dadurch Admin-Zugriff erlangen, wenn die Einstellung „Allow group leaders to edit users“ aktiviert ist. In Verbindung mit CVE-2024-8350 ausgenutzt, können alle Gruppenleiter zu Admins werden, unabhängig vom Status der Einstellung.
Das Plugin überprüft nicht die Rolle vorhandener Gruppenmitglieder (Benutzer), wenn sie zu neuen Gruppen hinzugefügt werden. Wenn „Allow group leaders to edit users“ aktiviert ist, kann ein Gruppenleiter dadurch Admin-Rechte auf der Website erlangen, indem er einen vorhandenen Administrator zu seiner Gruppe hinzufügt. Nachdem ein vorhandener Administrator zur Gruppe hinzugefügt wurde, ändert der Gruppenleiter einfach die E-Mail-Adresse des Administrators und setzt das Passwort zurück.
Uncanny Owl veröffentlichte am 26.08.2024 einen unzureichenden Patch (6.1.0.1). Die Schwachstelle konnte nicht mehr ausgenutzt werden, um Admin zu werden (außer in Verbindung mit CVE-2024-8350), aber sie konnte immer noch von jedem Gruppenleiter verwendet werden, um Editor (oder niedriger) zu werden. „Allow group leaders to edit users“ musste aktiviert sein.
Uncanny Owl veröffentlichte am 11.09.2024 einen vollständigen Patch (6.1.1).
Ein Gruppenleiter kann die Kontaktdaten eines Benutzers aufgrund einer fehlenden Berechtigungsprüfung in der REST-API ändern. In Verbindung mit CVE-2024-8349 ausgenutzt, können sich alle Gruppenleiter selbst Admin-Rechte verleihen.
Das Plugin verfügt über eine siteweite Berechtigungseinstellung namens „Allow group leaders to edit users“. Wenn aktiviert, können Gruppenleiter die Namen und E-Mail-Adressen ihrer Gruppenmitglieder (Benutzer) ändern. Diese Funktion ist standardmäßig deaktiviert.
Das Deaktivieren der Funktion verhindert jedoch nur, dass die Einstellung im Frontend angezeigt wird. Ein Gruppenleiter kann weiterhin POST-Anfragen mit denselben Aktionen senden. Da Gruppenleiter alle Benutzer zu ihren Gruppen hinzufügen können, können Gruppenleiter auch die Namen und E-Mail-Adressen aller Benutzer ändern.
https://example.com/wp-json/ulgm_management/v1/edit_user/?
action=edit-user&group-id={Group ID}&edit-user-id={user ID}&first_name=Lorem&last_name=Ipsum&email={attacker’s email address}
(Die Gruppen-ID und die Benutzer-ID sind als Teil des Seiteninhalts zu finden.)
In Verbindung mit CVE-2024-8349 ausgenutzt, können sich alle Gruppenleiter selbst Admin-Rechte verleihen.
Uncanny Owl veröffentlichte am 26.08.2024 einen unzureichenden Patch (6.1.0.1). Die Schwachstelle wurde teilweise gepatcht, aber wiederum nur im Frontend. Die Einstellung „Allow group leaders to edit users“ musste aktiviert sein.
Wenn ein Gruppenleiter einen Administrator als Teil seiner Gruppe hatte, konnte der Gruppenleiter das Modal zum Ändern der E-Mail-Adresse des Administrators nicht mehr anzeigen. Allerdings erlaubte die REST-API dem Gruppenleiter dies weiterhin.
Ein Gruppenleiter konnte immer noch Admin werden, indem er CVE-2024-8350 in Verbindung mit CVE-2024-8349 ausnutzte. Der Gruppenleiter musste zuerst einen Editor zu seiner Gruppe hinzufügen und das Konto des Editors übernehmen. Der Gruppenleiter (jetzt ein Editor) konnte dann über das LearnDash-Backend einen Administrator hinzufügen und die E-Mail-Adresse des Administrators über die REST-API von Uncanny Groups ändern.
Uncanny Owl veröffentlichte am 11.09.2024 einen vollständigen Patch (6.1.1).
Uncanny Owl hat die Sicherheitsmeldungen gut bearbeitet und die Schwachstellen innerhalb des 90-tägigen Responsible-Disclosure-Zeitrahmens behoben.
Site-Administratoren sollten sich bewusst sein, dass ein Gruppenleiter von Gruppe A einen Benutzer, der zu Gruppe B gehört, ohne dessen Zustimmung hinzufügen kann. Dies kann ein Vertraulichkeits- und DSGVO-Compliance-Problem darstellen, wenn z. B. Gruppe A und Gruppe B zwei verschiedene Unternehmen sind. Es handelt sich jedoch nicht um eine Schwachstelle, da das Plugin so funktionieren soll.
Ich habe bereits im Jahr 2021 eine Funktionsanfrage zur Behebung dieses Vertraulichkeitsproblems eingereicht. Uncanny Owl wird meine Funktionsanfrage nun erneut prüfen. Betroffene Websites können in der Zwischenzeit eigene Workarounds mit dem Filter ulgm_gdpr_is_group_leader_allowed und benutzerdefinierten Frontend-Template-Überschreibungen implementieren.