Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-5118 — Divi Form Builder <= 5.1.2 — Nicht authentifizierte Privilegieneskalation durch Rolleninjektion | Kitploit
Tools/GitHubGitHub/yucaerin/cve-2026-5118
Privilege EscalationSchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsLernen & Bildung
GitHubyucaerin/cve-2026-5118

CVE-2026-5118

Divi Form Builder <= 5.1.2 — Nicht authentifizierte Privilegieneskalation durch Rolleninjektion

Repository anzeigen
1vor 2 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2026-5118 — Divi Form Builder <= 5.1.2 — Nicht authentifizierte Privilegienausweitung durch Rolleninjektion

🔥 Zusammenfassung der Sicherheitslücke

Das WordPress-Plugin Divi Form Builder in Versionen <= 5.1.2 ist anfällig für eine nicht authentifizierte Privilegienausweitung. Dieser kritische Fehler erlaubt es nicht authentifizierten Angreifern, ein neues Administrator-Konto direkt über ein beliebiges Divi Form Builder-Formular zu erstellen – einschließlich Kontaktformularen, Angebotsformularen, Newsletter-Formularen oder anderen DFB-fähigen Formularen.

Die Schwachstelle hat ihren Ursprung in der create_user()-Funktion in FormSubmissionHandler.php, die den Parameter role direkt aus vom Benutzer übermittelten POST-Daten akzeptiert, ohne ordnungsgemäße Autorisierung oder Allowlist-Validierung. Das Plugin prüft nur, ob die übermittelte Rolle existiert (z. B. administrator ist eine gültige WordPress-Rolle) – es wird nie geprüft, ob die Rolle für die öffentliche Registrierung sicher ist.

Durchbruch-Entdeckung: Der von Divi Form Builder verwendete fb_nonce ist ein globaler gemeinsamer Nonce (wp_create_nonce('security')) – identisch für alle Formulare auf der Website. Außerdem kann form_type=register per POST an den gemeinsamen AJAX-Handler überschrieben werden. Das bedeutet, dass jedes DFB-Formular (Kontakt, Angebot, Feedback usw.) verwendet werden kann, um eine Benutzerregistrierung mit einer beliebigen Rollenzuweisung auszulösen.

🔍 Betroffenes Plugin

  • Plugin Name: Divi Form Builder
  • Affected Version: <= 5.1.2
  • Vulnerability Type: Nicht authentifizierte Privilegienausweitung durch Rolleninjektion
  • CVE ID: CVE-2026-5118
  • CVSS Score: 9.8 (Critical)
  • CWE: CWE-266 — Falsche Privilegienzuweisung
  • Impact: Vollständige Übernahme der Website – Erstellung eines Admin-Kontos

🧨 Was Angreifer tun können

🧪 Exploit-Funktionen

  • 🔓 Keine Authentifizierung erforderlich
  • 📝 Funktioniert mit JEDEM DFB-Formular — Kontakt, Angebot, Newsletter, Feedback usw.
  • 🎯 Targets the AJAX endpoint /wp-admin/admin-ajax.php?action=de_fb_ajax_submit_ajax_handler
  • 🧠 Rolleninjektion — sendet role=administrator zusammen mit normalen Formularfeldern
  • 🌐 Unterstützung für Massenscans — Thread-basierter Multi-Ziel-Scanner mit automatischer Erkennung
  • 📄 Ergebnisse gespeichert in result.txt

🧠 Angreifbarer Code

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!

🚀 Verwendung

Einzelnes Ziel

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

Massenscan (Liste ohne http/https)

Erstellen Sie 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

Optionen

🛠 Empfehlungen zur Behebung

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
}
  • Entfernen Sie das versteckte role-Eingabefeld vollständig aus Frontend-Formularen
  • Fügen Sie Berechtigungsprüfungen mit current_user_can('create_users') für privilegierte Rollen hinzu
  • Implementieren Sie eine strenge Nonce-Validierung, die pro Formular statt global begrenzt ist
  • Fügen Sie Ratenbegrenzung für den AJAX-Endpunkt der Registrierung hinzu

🧠 Forscher

  • Anerkennung: 0xd4rk5id3

📚 Referenzen

  • Wordfence-Hinweis
  • Original-CVE-Repository

🔒 Haftungsausschluss:

Diese Informationen dienen ausschließlich zu Bildungszwecken und für autorisierte Penetrationstests. Die unbefugte Ausnutzung von Computersystemen ist illegal und unethisch. Holen Sie stets eine ausdrückliche schriftliche Genehmigung ein, bevor Sie ein Ziel testen, das Ihnen nicht gehört.

Tool herunterladen
FähigkeitAuswirkung
🔑 Admin-Konto ohne Anmeldung erstellenVollständige Übernahme der Website
📦 Zugriff auf WooCommerce-KundendatenDatenleck
💉 Bearbeiten von Plugin/Theme-PHP-DateienRemote-Code-Ausführung
🕳️ Installieren versteckter BackdoorsDauerhafter Zugriff
👥 Alle Benutzerdaten anzeigenDatenschutzverletzung
FlagBeschreibung
-t, --targetEinzelne Ziel-URL
-l, --listDatei mit Zielliste (eine pro Zeile, http/https optional)
-T, --threadsThreads für Massenscan (Standard: 10)
-o, --outputAusgabedatei für Ergebnisse (Standard: result.txt)
-u, --usernameBenutzerdefinierter Benutzername für das neue Konto
-p, --passwordBenutzerdefiniertes Passwort für das neue Konto
-e, --emailBenutzerdefinierte E-Mail für das neue Konto
-v, --verboseAusführliche Debug-Ausgabe
--no-confirmBestätigungsaufforderung überspringen