Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-12793 — Preuve de concept d'exploit pour CVE-2026-12793, une élévation de privilèges non authentifiée dans WordPress JetFormBuilder jusqu'à la version 3.6.2 qui crée des comptes administrateur. | Kitploit
Outils/GitHubGitHub/abraxas/cve-2026-12793
Escalade de PrivilègesAnalyse des VulnérabilitésExploitationExploitation d'Applications WebSécurité WebTests d'IntrusionApprentissage et ÉducationLabs et Pratique
GitHubabraxas/cve-2026-12793

CVE-2026-12793

Preuve de concept d'exploit pour CVE-2026-12793, une élévation de privilèges non authentifiée dans WordPress JetFormBuilder jusqu'à la version 3.6.2 qui crée des comptes administrateur.

il y a 7h 12mPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Voir le dépôt

Abraxas Labs — CVE-2026-12793

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  CVE-2026-12793

CVE-2026-12793

JetFormBuilder — Dynamic Blocks Form Builder 3.6.2 — jetmonsters

Le plugin JetFormBuilder — Dynamic Blocks Form Builder pour WordPress est vulnérable à une élévation de privilèges dans toutes les versions jusqu'à 3.6.2 incluse. Cela est dû au fait que le plugin ne vérifie pas qu'un ID de formulaire soumis appartient à un formulaire JetFormBuilder avant d'analyser le contenu du post référencé comme schéma de formulaire et d'exécuter un callback côté serveur Advanced Validation. Cela permet à des attaquants non authentifiés de créer un nouveau compte utilisateur de niveau administrateur.

CVECVE-2026-12793 · CVE.org
CWECWE-269
CVSSCritique : 9.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
ProduitJetFormBuilder — Dynamic Blocks Form Builder
Affectétoutes les versions jusqu'à 3.6.2 (incluse)
Corrigé3.6.2.1 et ultérieures
Authaucune (voir la source map)
Lab127.0.0.1 uniquement · pack de divulgation fournisseur/client, pas un scanner

Avis (d'après la source map)

L'avis nomme _jet_engine_booking_form_id et Advanced Validation. Ce champ POST est Form_Handler::$form_key. Le hook du routeur n'est PAS la valeur par défaut de la source jet_form_builder_submit=submit ; c'est la paire randomisée gfb_request_args_key/value. Les noms de méthodes PHP ne sont pas des action= HTTP. REST validate-field est la mauvaise route sur 3.6.2 (validate_form_post_type s'exécute déjà).


Entrée

  • Méthode : POST
  • Chemin : /
  • Routeur : Form_Request_Router écoute REQUEST[hook_key]=hook_val. Ce ne sont PAS les valeurs par défaut de la source jet_form_builder_submit=submit — Form_Handler::set_jfb_request_args les écrase à partir de l'option jet_form_builder_settings__options-tab gfb_request_args_key / gfb_request_args_value (6+12 caractères aléatoires au premier chargement). Un POST qui envoie encore jet_form_builder_submit=submit ne correspond jamais ; WP rend le HTML du thème (~80k). Le champ form id reste _jet_engine_booking_form_id.
  • Notes : CVE-2026-12793 : set_form_id ne fait que absint(). get_blocks_by_post parse_blocks() n'importe quel post. Graine du lab : post publié slug jfb-lab-carrier (post_type=post, PAS jet-form-builder) avec des champs jet-forms + _jf_actions register_user administrator, et un paragraphe JFB_HOOK_KEY=... JFB_HOOK_VAL=... afin que la paire de routeur randomisée soit dans le corps REST public (les mêmes valeurs qu'un vrai formulaire mettrait dans des champs cachés). Étape 1 GET /?rest_route=/wp/v2/posts&slug=jfb-lab-carrier (id + paire de hooks). Étape 2 POST / avec cette paire, method=ajax, form id, login/email/password. Ne pas utiliser REST validate-field (vérifie déjà le type en 3.6.2). Le HTML de la page d'accueil est un ÉCHEC.

Chaîne d'appel

  • 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_val
  • Form_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)

Préconditions du lab

  • WordPress avec jetformbuilder 3.6.2 activé
  • La graine du lab a publié un post régulier slug=jfb-lab-carrier (post_type=post, PAS jet-form-builder) avec des blocs jet-forms/text-field nommés login,email,password et _jf_actions register_user role administrator, _jf_args load_nonce=hide
  • Découvrir l'id via GET /?rest_route=/wp/v2/posts&slug=jfb-lab-carrier

Preuve

Le POST JSON contient status success et un user_id numérique. Un GET /?rest_route=/wp/v2/users/<user_id> de suivi ou une liste ultérieure incluant login poc_12793 avec le rôle administrator. Le login unique poc_12793 est le marqueur — pas le HTML hello-world.

Échec

  • HTML hello world 200 générique
  • POST / 200 avec ~80k de HTML de thème (routeur manqué : envoie encore jet_form_builder_submit=submit)
  • admin-ajax 400 body 0
  • Invalid form ID / Invalid security signature depuis /jet-form-builder/v1/validate-field
  • status failed / nonce_failed / csrf_failed
  • création d'un subscriber au lieu d'un administrator
  • utilisation d'un vrai id de CPT jet-form-builder (c'est le comportement prévu, pas cette CVE)

Correctif / remédiation

À faire en premier : Mettre à jour JetFormBuilder — Dynamic Blocks Form Builder vers 3.6.2.1 ou une version ultérieure.

Vérifier après la mise à jour

  • Relancer CVE-2026-12793-Abraxas-Labs.py contre la version corrigée : la preuve mappée ne doit pas apparaître.
  • Confirmer l'avis du fournisseur / le changeset dans l'arborescence déployée (voir références).
  • Une signature WAF est un délai, pas un correctif.

Si vous ne pouvez pas mettre à jour immédiatement

  • Désactiver ou isoler le composant affecté.
  • Rechercher la condition de preuve en production (nouveaux utilisateurs privilégiés, fichiers inattendus, lignes injectées — tout ce que la carte de cette CVE nomme).

Reproduction (lab autorisé)

Cibler uniquement http://127.0.0.1:8088 (ou le loopback que vous avez lié). Ne pointez pas ce script vers Internet.

root@kitploit:~
python3 CVE-2026-12793-Abraxas-Labs.py

Le succès est la preuve ci-dessus dans le corps de la réponse. Un HTML 200 générique ne l'est pas.


Références

  • CVE-2026-12793 · NVD

  • CVE-2026-12793 · CVE.org

  • plugins.trac.wordpress.org/changeset/3575346/jetformbuilder

  • www.wordfence.com/threat-intel/vulnerabilities/id/a61b2ecc-d4e1-4e71-9187-ddc3d3616a29?source=cve

  • github.com/advisories/GHSA-579w-q4cr-j8hc

  • nvd.nist.gov/vuln/detail/CVE-2026-12793

  • Répertoire de plugins : jetformbuilder

  • Navigateur Trac : plugins.trac.wordpress.org/jetformbuilder

  • Tags SVN : plugins.svn.wordpress.org/jetformbuilder

  • Abraxas Labs : abraxaslabs.tech · github.com/abraxas · @abraxas_null


Enregistrements (structurés)

root@kitploit:~
# 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.

Avertissement

Ce pack est destiné au fournisseur, au propriétaire du site et aux labs sous licence. Le script communique avec 127.0.0.1. L'utiliser contre des systèmes que vous ne possédez pas n'est pas autorisé par Abraxas Labs. Aucune garantie.

abraxaslabs.tech · github.com/abraxas · @abraxas_null

Télécharger l’outil
  • 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)