
Proof-of-Concept-Exploit für CVE-2026-12793, eine nicht authentifizierte Rechteausweitung in WordPress JetFormBuilder bis 3.6.2, die Administrator-Konten erstellt.
abraxaslabs.tech · github.com/abraxas · @abraxas_null · CVE-2026-12793
JetFormBuilder — Dynamic Blocks Form Builder 3.6.2 — jetmonsters
Das Plugin JetFormBuilder — Dynamic Blocks Form Builder für WordPress ist in allen Versionen bis einschließlich 3.6.2 anfällig für Privilege Escalation. Ursache ist, dass das Plugin nicht validiert, ob eine übermittelte Formular-ID zu einem JetFormBuilder-Formular gehört, bevor es den Inhalt des referenzierten Beitrags als Formularschema parst und einen serverseitigen Callback der erweiterten Validierung ausführt. Dadurch ist es unauthentifizierten Angreifern möglich, ein neues Benutzerkonto mit Administratorrechten zu erstellen.
| CVE | CVE-2026-12793 · CVE.org |
| CWE | CWE-269 |
| CVSS | Kritisch: 9.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| Produkt | JetFormBuilder — Dynamic Blocks Form Builder |
| Betroffen | alle Versionen bis einschließlich 3.6.2 |
| Gepatcht | 3.6.2.1 und später |
| Auth | keine (siehe Source Map) |
| Lab | nur 127.0.0.1 · Vendor-/Client-Disclosure-Paket, kein Scanner |
Das Advisory nennt _jet_engine_booking_form_id und Advanced Validation. Dieses POST-Feld ist Form_Handler::$form_key. Der Router-Hook ist NICHT der Source-Default jet_form_builder_submit=submit; es ist der randomisierte gfb_request_args_key/value. PHP-Methodennamen sind nicht HTTP action=. REST validate-field ist die falsche Route auf 3.6.2 (validate_form_post_type läuft bereits).
POST/GET /?rest_route=/wp/v2/posts&slug=jfb-lab-carrier -> id plus JFB_HOOK_KEY / JFB_HOOK_VAL (options-tab gfb_request_args_*)POST / REQUEST[hook_key]=hook_val method=ajax (NOT jet_form_builder_submit=submit)Form_Request_Router::listen (includes/request/request-router.php) uses Form_Handler::$hook_key/$hook_valForm_Handler::process_form -> setup_form -> set_form_id absint only (includes/form-handler.php:150-154, 183-200, 240)send_form: Action_Handler::set_form_id -> set_form_actions from _jf_actions of that post (includes/actions/action-handler.php:71-117)Request_Handler::set_form_data -> Block_Helper::get_blocks_by_post parse_blocks any post (includes/blocks/block-helper.php:186-201; includes/request/request-handler.php:30-33)block-parsers Module::init_request apply those blocks (modules/block-parsers/module.php:101-119)Default_Process_Event runs Register_User_Action::do_action wp_insert_user with settings.user_role (modules/actions-v2/register-user/register-user-action.php:66-215)Das POST-JSON enthält status success und eine numerische user_id. Nachfolgendes GET /?rest_route=/wp/v2/users/<user_id> oder eine spätere Liste, die login poc_12793 mit Rolle administrator enthält. Der eindeutige Login poc_12793 ist der Marker — nicht hello-world-HTML.
Zuerst dies tun: Aktualisieren Sie JetFormBuilder — Dynamic Blocks Form Builder auf 3.6.2.1 oder neuer.
Nach dem Upgrade verifizieren
CVE-2026-12793-Abraxas-Labs.py erneut gegen den gepatchten Build ausführen: der zugeordnete Nachweis darf nicht erscheinen.Wenn Sie nicht sofort aktualisieren können
Ziel ausschließlich http://127.0.0.1:8088 (oder das von Ihnen gebundene Loopback). Richten Sie dieses Skript nicht auf das Internet.
python3 CVE-2026-12793-Abraxas-Labs.py
Erfolg ist der obige Nachweis im Response-Body. Generisches 200-HTML ist es nicht.
www.wordfence.com/threat-intel/vulnerabilities/id/a61b2ecc-d4e1-4e71-9187-ddc3d3616a29?source=cve
Plugin-Verzeichnis: jetformbuilder
Trac-Browser: plugins.trac.wordpress.org/jetformbuilder
SVN-Tags: plugins.svn.wordpress.org/jetformbuilder
Abraxas Labs: abraxaslabs.tech · github.com/abraxas · @abraxas_null
# CVE-2026-12793 (structured records)
- input: `https://nvd.nist.gov/vuln/detail/CVE-2026-12793`
- CWE: CWE-269
- published: 2026-09-16T04:17:56.110
## NVD description
The JetFormBuilder — Dynamic Blocks Form Builder plugin for WordPress is vulnerable to Privilege Escalation in all versions up to, and including, 3.6.2. This is due to the plugin not validating that a submitted form ID belongs to a JetFormBuilder form before parsing the referenced post's content as form schema and executing an Advanced Validation server-side callback. This makes it possible for unauthenticated attackers to create a new administrator-level user account.
## MITRE description
The JetFormBuilder — Dynamic Blocks Form Builder plugin for WordPress is vulnerable to Privilege Escalation in all versions up to, and including, 3.6.2. This is due to the plugin not validating that a submitted form ID belongs to a JetFormBuilder form before parsing the referenced post's content as form schema and executing an Advanced Validation server-side callback. This makes it possible for unauthenticated attackers to create a new administrator-level user account.
## Affected
- jetmonsters JetFormBuilder — Dynamic Blocks Form Builder 0 affected
## References (JSON sources only)
- https://plugins.trac.wordpress.org/changeset/3575346/jetformbuilder
- https://www.wordfence.com/threat-intel/vulnerabilities/id/a61b2ecc-d4e1-4e71-9187-ddc3d3616a29?source=cve
- https://github.com/advisories/GHSA-579w-q4cr-j8hc
- https://nvd.nist.gov/vuln/detail/CVE-2026-12793
## GitHub advisory
The JetFormBuilder — Dynamic Blocks Form Builder plugin for WordPress is vulnerable to Privilege...
The JetFormBuilder — Dynamic Blocks Form Builder plugin for WordPress is vulnerable to Privilege Escalation in all versions up to, and including, 3.6.2. This is due to the plugin not validating that a submitted form ID belongs to a JetFormBuilder form before parsing the referenced post's content as form schema and executing an Advanced Validation server-side callback. This makes it possible for unauthenticated attackers to create a new administrator-level user account.
Dieses Paket ist für den Vendor, den Seitenbetreiber und lizenzierte Labs. Das Skript kommuniziert mit 127.0.0.1. Die Verwendung gegen Systeme, die Ihnen nicht gehören, ist von Abraxas Labs nicht autorisiert. Keine Gewährleistung.
SSR path (same schema): Server_Side_Rule::validate_custom call_user_func if the field rule value is a PHP function not in NOT_ALLOWED (modules/validation/advanced-rules/server-side-rule.php:187-194)