
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:
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 |
Users → All Users auf unerwartete genehmigte Konten, die seit der Installation der anfälligen Version erstellt wurden. Achten Sie besonders auf Konten ohne entsprechende Admin-Benachrichtigungs-E-Mail.Die anfällige Methode sollte sowohl eine Berechtigungsprüfung als auch eine gültige Nonce erfordern:
protected function is_admin_creation_process() {
return current_user_can( 'create_users' )
&& isset( $_REQUEST['action'] )
&& 'createuser' === $_REQUEST['action']
&& isset( $_REQUEST['_wpnonce_create-user'] )
&& wp_verify_nonce(
wp_unslash( $_REQUEST['_wpnonce_create-user'] ),
'create-user'
);
}
| Datum | Ereignis |
|---|
Forscher, die das Autorisierungsmodell dieses Plugins verfolgen, könnten auch an Folgendem interessiert sein:
register_member (≤ 5.1.2)Forschung, Entdeckung und PoC-Entwicklung:
Anthony Cihan Offensive Security Lead — Obviam
Wenn Sie diese Arbeit zitieren, nennen Sie bitte CVE-2026-6145 mit Zuschreibung an Anthony Cihan / Obviam.
Dieser Proof-of-Concept wird ausschließlich für defensive Forschung, Erkennungsentwicklung und autorisierte Sicherheitstests veröffentlicht. Er soll unterstützen:
Die ursprüngliche Forschung wurde in einer autorisierten Laborumgebung unter einer unterzeichneten Vereinbarung durchgeführt, mit koordinierter Offenlegung gegenüber dem Anbieter über das Wordfence Responsible Disclosure Program vor der öffentlichen Veröffentlichung.
Das Ausführen dieses PoCs gegen ein System, das Sie nicht besitzen oder für das Sie keine ausdrückliche schriftliche Testgenehmigung haben, ist illegal gemäß dem U.S. Computer Fraud and Abuse Act (18 U.S.C. § 1030), dem U.K. Computer Misuse Act 1990, der E.U. Directive 2013/40/EU und gleichwertigen Gesetzen in den meisten Rechtsordnungen. Der Autor und Obviam lehnen jede Haftung für die missbräuchliche Verwendung dieses Codes ab.
Durch die Nutzung dieses Repositorys bestätigen Sie, dass Sie diese Bedingungen gelesen, verstanden und akzeptiert haben.
Veröffentlicht unter der MIT-Lizenz. Namensnennung gemäß obigem Danksagungsabschnitt erforderlich.
| 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 |
| 2026-03-09 | Schwachstelle während eines autorisierten Sicherheitsaudits von Plugin v5.1.4 identifiziert |
| 2026-03-09 | Erster Bericht an das Wordfence Responsible Disclosure Program übermittelt |
| 2026-04-12 | CVE-2026-6145 von Wordfence (CNA) reserviert |
| 2026-05-14 | Vom Anbieter veröffentlichte behobene Version; CVE-2026-6145 veröffentlicht |
| 2026-05-14 | Dieser PoC in Abstimmung mit dem öffentlichen Advisory veröffentlicht |