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-12793 — Proof-of-concept di exploit per CVE-2026-12793, un'escalation di privilegi non autenticata in WordPress JetFormBuilder fino alla versione 3.6.2 che crea account amministratore. | Kitploit
Strumenti/GitHubGitHub/abraxas/cve-2026-12793
Escalation di PrivilegiAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebSicurezza WebPenetration TestingApprendimento e FormazioneLab e Pratica
GitHubabraxas/cve-2026-12793

CVE-2026-12793

Proof-of-concept di exploit per CVE-2026-12793, un'escalation di privilegi non autenticata in WordPress JetFormBuilder fino alla versione 3.6.2 che crea account amministratore.

Vedi Repository
7h 12m 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

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

Il plugin JetFormBuilder — Dynamic Blocks Form Builder per WordPress è vulnerabile a Privilege Escalation in tutte le versioni fino alla 3.6.2 inclusa. Ciò è dovuto al fatto che il plugin non verifica che un ID modulo inviato appartenga a un modulo JetFormBuilder prima di analizzare il contenuto del post referenziato come schema del modulo ed eseguire un callback server-side di Advanced Validation. Questo rende possibile per attaccanti non autenticati creare un nuovo account utente con privilegi di amministratore.

CVECVE-2026-12793 · CVE.org
CWECWE-269
CVSSCritical: 9.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
ProdottoJetFormBuilder — Dynamic Blocks Form Builder
Affettetutte le versioni fino alla 3.6.2 (inclusa)
Corrette3.6.2.1 e successive
Authnessuna (vedi source map)
Labsolo 127.0.0.1 · pacchetto di disclosure per vendor/cliente, non uno scanner

Advisory (dalla source map)

L'advisory nomina _jet_engine_booking_form_id e Advanced Validation. Quel campo POST è Form_Handler::$form_key. L'hook del router NON è il default del sorgente jet_form_builder_submit=submit; è la coppia randomizzata gfb_request_args_key/value. I nomi dei metodi PHP non sono action= HTTP. REST validate-field è la route sbagliata sulla 3.6.2 (validate_form_post_type viene già eseguito).


Entry

  • Metodo: POST
  • Percorso: /
  • Router: Form_Request_Router ascolta REQUEST[hook_key]=hook_val. Questi NON sono i default del sorgente jet_form_builder_submit=submit — Form_Handler::set_jfb_request_args li sovrascrive dall'opzione jet_form_builder_settings__options-tab gfb_request_args_key / gfb_request_args_value (6+12 caratteri casuali al primo caricamento). Un POST che invia ancora jet_form_builder_submit=submit non corrisponde mai; WP renderizza l'HTML del tema (~80k). Il campo form id è comunque _jet_engine_booking_form_id.
  • Note: CVE-2026-12793: set_form_id esegue solo absint(). get_blocks_by_post esegue parse_blocks() su qualsiasi post. Seed del lab: post pubblicato con slug jfb-lab-carrier (post_type=post, NON jet-form-builder) con campi jet-forms + _jf_actions register_user administrator, e un paragrafo JFB_HOOK_KEY=... JFB_HOOK_VAL=... così che la coppia randomizzata del router sia nel body REST pubblico (gli stessi valori che un modulo reale metterebbe nei campi nascosti). Step 1 GET /?rest_route=/wp/v2/posts&slug=jfb-lab-carrier (id + coppia hook). Step 2 POST / con quella coppia, method=ajax, form id, login/email/password. Non usare REST validate-field (esegue già il type-check nella 3.6.2). L'HTML della homepage è FAIL.

Catena di chiamate

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

Precondizioni del lab

  • WordPress con jetformbuilder 3.6.2 attivato
  • Il seed del lab ha pubblicato un post regolare slug=jfb-lab-carrier (post_type=post, NON jet-form-builder) con blocchi jet-forms/text-field denominati login,email,password e _jf_actions register_user role administrator, _jf_args load_nonce=hide
  • Scopri l'id tramite GET /?rest_route=/wp/v2/posts&slug=jfb-lab-carrier

Witness

Il POST JSON contiene status success e un user_id numerico. GET successivo /?rest_route=/wp/v2/users/<user_id> o una lista successiva che include login poc_12793 con role administrator. Il login univoco poc_12793 è il marker — non l'HTML hello-world.

Non successo

  • generico 200 hello world HTML
  • POST / 200 con ~80k di HTML del tema (router miss: sta ancora inviando jet_form_builder_submit=submit)
  • admin-ajax 400 body 0
  • Invalid form ID / Invalid security signature da /jet-form-builder/v1/validate-field
  • status failed / nonce_failed / csrf_failed
  • creazione di un subscriber invece di administrator
  • uso di un vero id CPT jet-form-builder (quello è il comportamento previsto, non questa CVE)

Patch / remediation

Fai questo per primo: Aggiorna JetFormBuilder — Dynamic Blocks Form Builder a 3.6.2.1 o successiva.

Verifica dopo l'aggiornamento

  • Riesegui CVE-2026-12793-Abraxas-Labs.py contro la build corretta: il witness mappato non deve apparire.
  • Conferma l'advisory del vendor / il changeset nell'albero distribuito (vedi riferimenti).
  • Una firma WAF è un ritardo, non una patch.

Se non puoi aggiornare immediatamente

  • Disabilita o isola il componente interessato.
  • Cerca la condizione witness in produzione (nuovi utenti privilegiati, file inattesi, righe iniettate — qualunque cosa indichi la mappa di questa CVE).

Riproduzione (lab autorizzato)

Target solo http://127.0.0.1:8088 (o il loopback su cui hai fatto il bind). Non puntare questo script verso internet.

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

Il successo è il witness sopra nel body della risposta. Un generico 200 HTML non lo è.


Riferimenti

  • 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

  • Directory del plugin: jetformbuilder

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

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

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


Records (strutturati)

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.

Disclaimer

Questo pacchetto è per il vendor, il proprietario del sito e i lab autorizzati. Lo script comunica con 127.0.0.1. Usarlo contro sistemi di cui non sei proprietario non è autorizzato da Abraxas Labs. Nessuna garanzia.

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

Scarica lo strumento
  • 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)