
User Registration & Membership <= 5.1.5 - Omisión de la aprobación del administrador por autorización faltante sin autenticación a través del parámetro 'action'
Exploit de prueba de concepto para CVE-2026-6145, una vulnerabilidad de autorización faltante en el plugin User Registration & Membership para WordPress (≤ 5.1.5) que permite a atacantes no autenticados omitir el requisito de aprobación del administrador al crear nuevas cuentas.
| ID CVE | CVE-2026-6145 |
| CNA | Wordfence |
| Vulnerabilidad | Autorización faltante — Omisión de la aprobación del administrador |
| CWE | CWE-862 (Autorización faltante) |
| CVSS 3.1 | 5.3 Media (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N) |
| Afectado | User Registration & Membership para WordPress — todas las versiones ≤ 5.1.5 |
| Parcheada | Versión > 5.1.5 |
| Investigador | Anthony Cihan — Líder de Seguridad Ofensiva, Obviam |
| Divulgación | Programa de Divulgación Responsable de Wordfence |
| Publicado | 2026-05-14 |
El método is_admin_creation_process() en includes/class-ur-user-approval.php es la única puerta que determina si un nuevo registro debe tratarse como una creación iniciada por el administrador. Cuando este método devuelve true, se producen dos efectos secundarios:
set_user_status() establece el estado del nuevo usuario en APPROVED, omitiendo la cola de aprobación pendiente.send_request_notification_to_admin() suprime el correo de notificación al administrador para el nuevo registro.El método en sí, en la versión 5.1.5, no contiene autenticación, autorización ni verificación de nonce:
// includes/class-ur-user-approval.php:459-461
protected function is_admin_creation_process() {
return ( isset( $_REQUEST['action'] ) && 'createuser' == $_REQUEST['action'] );
}
Dado que $_REQUEST fusiona $_GET, $_POST y $_COOKIE, un atacante no autenticado puede satisfacer esta comprobación añadiendo ?action=createuser a la URL del envío de un formulario de registro. El plugin entonces auto-aprueba la cuenta y nunca alerta al administrador.
Si bien CVE-2026-6145 aborda específicamente la autorización faltante en is_admin_creation_process(), la explotación no autenticada completa contra un formulario de registro endurecido requiere encadenarlo con dos problemas auxiliares en la misma versión del plugin, ambos manejados automáticamente por el PoC incluido:
| Paso | Problema | Propósito |
|---|---|---|
| 1 | Generación de nonce no autenticada a través del endpoint user_registration_get_recent_nonce wp_ajax_nopriv (comprobación solo de Referer) | Obtener un ur_frontend_form_nonce válido sin una sesión autenticada |
| 2 | Omisión de la comprobación de nonce AJAX cuando ur_fallback_submit no está vacío en el manejador del formulario | Enviar el registro a través de la ruta de respaldo sin un referer AJAX válido |
| 3 | CVE-2026-6145 — action=createuser en $_REQUEST cambia is_admin_creation_process() a true | Auto-aprobar la nueva cuenta y suprimir la notificación al administrador |
El resultado: una cuenta de usuario totalmente aprobada, creada sin interacción ni notificación del administrador, en un sitio que exige explícitamente la aprobación del administrador para nuevos registros.
requestsdata-form-id)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>
Ejemplo:
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
======================================================================
Después de ejecutar el PoC, inicia sesión en wp-admin y revisa Usuarios → Todos los usuarios:
En sitios WordPress que utilizan la aprobación del administrador como puerta principal contra la creación no deseada de cuentas — común en sitios de membresía, comunidades cerradas, portales internos, plataformas B2B y cualquier sitio que requiera verificación de identidad antes del acceso — esta vulnerabilidad neutraliza silenciosamente ese control. Las consecuencias específicas incluyen:
La puntuación CVSS refleja un impacto solo en la integridad (sin pérdida directa de confidencialidad de datos ni interrupción del servicio), pero el impacto en el mundo real escala con el grado en que el sitio afectado depende del flujo de aprobación como frontera de seguridad.
| Versión | Estado |
|---|---|
| ≤ 5.1.5 | Vulnerable |
| > 5.1.5 | Parcheada |