Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-5118 — Divi Form Builder <= 5.1.2 — Escalation di privilegi non autenticata tramite iniezione di ruolo | Kitploit
Strumenti/GitHubGitHub/yucaerin/cve-2026-5118
Escalation di PrivilegiAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingApprendimento e Formazione
GitHubyucaerin/cve-2026-5118

CVE-2026-5118

Divi Form Builder <= 5.1.2 — Escalation di privilegi non autenticata tramite iniezione di ruolo

Vedi Repository
113 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2026-5118 — Divi Form Builder <= 5.1.2 — Escalation dei Privilegi Non Autenticata tramite Iniezione di Ruolo

🔥 Riepilogo della Vulnerabilità

Il plugin WordPress Divi Form Builder versioni <= 5.1.2 è affetto da una vulnerabilità di escalation dei privilegi non autenticata. Questa falla critica consente ad attaccanti non autenticati di creare un nuovo account Amministratore direttamente tramite qualsiasi modulo di Divi Form Builder — inclusi moduli di contatto, moduli di preventivo, moduli di newsletter o qualsiasi altro modulo abilitato DFB.

La vulnerabilità deriva dalla funzione create_user() in FormSubmissionHandler.php, che accetta il parametro role direttamente dai dati POST inviati dall'utente senza un'adeguata autorizzazione o validazione tramite allowlist. Il plugin controlla soltanto se il ruolo inviato esiste nel sistema (ad es., administrator è un ruolo WordPress valido) — non controlla mai se il ruolo è sicuro per la registrazione pubblica.

Scoperta Rivoluzionaria: Il fb_nonce utilizzato da Divi Form Builder è un nonce globale condiviso (wp_create_nonce('security')) — identico in tutti i moduli del sito. Inoltre, form_type=register può essere sovrascritto tramite POST verso il gestore AJAX condiviso. Ciò significa che qualsiasi modulo DFB (contatto, preventivo, feedback, ecc.) può essere armato per attivare la registrazione di utenti con assegnazione di ruolo arbitraria.

🔍 Plugin Interessato

  • Nome del Plugin: Divi Form Builder
  • Versione Interessata: <= 5.1.2
  • Tipo di Vulnerabilità: Escalation dei Privilegi Non Autenticata tramite Iniezione di Ruolo
  • ID CVE: CVE-2026-5118
  • Punteggio CVSS: 9.8 (Critico)
  • CWE: CWE-266 — Assegnazione Errata dei Privilegi
  • Impatto: Compromissione Totale del Sito — Creazione di Account Amministratore

🧨 Cosa Possono Fare gli Attaccanti

🧪 Caratteristiche dell'Exploit

  • 🔓 Nessuna autenticazione richiesta
  • 📝 Funziona tramite QUALSIASI modulo DFB — contatto, preventivo, newsletter, feedback, ecc.
  • 🎯 Prende di mira l'endpoint AJAX /wp-admin/admin-ajax.php?action=de_fb_ajax_submit_ajax_handler
  • 🧠 Iniezione di ruolo — invia role=administrator insieme ai normali campi del modulo
  • 🌐 Supporto alla scansione di massa — scanner multi-target multi-thread con rilevamento automatico
  • 📄 Risultati salvati in result.txt

🧠 Codice Vulnerabile

root@kitploit:~
// includes/shared/handlers/FormSubmissionHandler.php ~ line 2250
$role = isset($form_data['role']) ? sanitize_text_field($form_data['role']) : 'subscriber';

// ~ line 2278 — ONLY checks if role EXISTS, not if it is SAFE
$roles_obj = function_exists('wp_roles') ? wp_roles() : null;
if ($roles_obj && is_object($roles_obj) && is_array($roles_obj->roles) && !isset($roles_obj->roles[$role])) {
    $role = 'subscriber';  // ← "administrator" EXISTS, so this check PASSES
}

// ~ line 2301 — Directly applies the injected role
$user = new WP_User($user_id);
$user->set_role($role);  // ← PRIVILEGE ESCALATION!

🚀 Utilizzo

Singolo Target

root@kitploit:~
python3 exploit.py -t http://target.com
python3 exploit.py -t https://target.com -u hacker -p Pass123! -e [email protected]

Scansione di Massa (Lista senza http/https)

Crea targets.txt:

root@kitploit:~
target1.com
target2.com:8080
192.168.1.50
subdomain.target.com
root@kitploit:~
python3 exploit.py -l targets.txt -T 20

Opzioni

🛠 Raccomandazioni di Correzione

root@kitploit:~
// SECURE: Allowlist only safe roles for public registration
$allowed_registration_roles = array('subscriber', 'contributor');
if (!in_array($role, $allowed_registration_roles, true)) {
    $role = 'subscriber';  // ← Reject ALL dangerous roles
}
  • Rimuovi completamente l'input nascosto role dai moduli frontend
  • Aggiungi controlli delle capacità current_user_can('create_users') per i ruoli privilegiati
  • Implementa una verifica nonce rigorosa con ambito per-modulo invece che globale
  • Aggiungi rate limiting sull'endpoint AJAX di registrazione

🧠 Ricercatore

  • Crediti: 0xd4rk5id3

📚 Riferimenti

  • Avviso Wordfence
  • Repository CVE Originale

🔒 Disclaimer:

Queste informazioni sono fornite esclusivamente a scopo didattico e per test di penetrazione autorizzati. Lo sfruttamento non autorizzato di sistemi informatici è illegale e antietico. Ottieni sempre un'autorizzazione scritta esplicita prima di testare qualsiasi target che non possiedi.

Scarica lo strumento
CapacitàImpatto
🔑 Creare un account admin senza loginCompromissione Totale del Sito
📦 Accedere ai dati dei clienti WooCommerceViolazione dei Dati
💉 Modificare i file PHP di plugin/temiEsecuzione di Codice Remoto
🕳️ Installare backdoor nascosteAccesso Persistente
👥 Visualizzare tutti i dati degli utentiViolazione della Privacy
FlagDescrizione
-t, --targetURL del singolo target
-l, --listFile con l'elenco dei target (uno per riga, http/https opzionale)
-T, --threadsThread per la scansione di massa (predefinito: 10)
-o, --outputFile di output per i risultati (predefinito: result.txt)
-u, --usernameNome utente personalizzato per il nuovo account
-p, --passwordPassword personalizzata per il nuovo account
-e, --emailEmail personalizzata per il nuovo account
-v, --verboseOutput di debug dettagliato
--no-confirmSalta il prompt di conferma dell'autorizzazione