Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-11991-Exploit — Exploit automatizado para CVE-2026-11991, uma bypass de autorização no plugin FlowForms para WordPress que permite que usuários Contributor+ publiquem qualquer formulário em rascunho por meio de requisições REST API elaboradas. | Kitploit
Ferramentas/GitHubGitHub/0x00phantom-hat/cve-2026-11991-exploit
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebSegurança WebTestes de PenetraçãoAprendizado e Educação
GitHub0x00phantom-hat/cve-2026-11991-exploit

CVE-2026-11991-Exploit

Exploit automatizado para CVE-2026-11991, uma bypass de autorização no plugin FlowForms para WordPress que permite que usuários Contributor+ publiquem qualquer formulário em rascunho por meio de requisições REST API elaboradas.

Ver Repositório
há 12h 30mAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2026-11991 — Publicação Não Autorizada de Formulários no FlowForms

Bypass de Autorização Autenticado (Contribuidor+) para Publicar Qualquer Formulário Rascunho no FlowForms ≤ 1.1.1

Visão Geral da Vulnerabilidade

PropriedadeValor
ID CVECVE-2026-11991
Pontuação CVSS6.2 — Média
Vetor CVSSAV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N/E:H/RL:O/RC:C
CWECWE-639 (Bypass de Autorização por Chave Controlada pelo Usuário)
ProdutoFlowForms — Plugin WordPress de Construtor de Formulários Conversacionais
AfetadoTodas as versões até e incluindo 1.1.1
Corrigido Em1.1.2
PesquisadorPhantom Hat

Análise Técnica

Estudo de caso completo em caixa branca com análise de código-fonte, rastreamento de fluxo de entrada e comparação de patches:

📄 Estudo de Caso CVE-2026-11991 — Medium

Superfície de Ataque

O FlowForms expõe uma API REST sob o namespace flowforms/v1. O endpoint de publicação:

root@kitploit:~
POST /index.php?rest_route=/flowforms/v1/forms/{id}/publish

aceita um {id} controlado pelo usuário no caminho da URL e promove um formulário rascunho para o site ao vivo.

Causa Raiz

O permission_callback para a rota /publish realiza apenas uma verificação genérica de capacidade:

root@kitploit:~
register_rest_route($ns, '/forms/(?P<id>\d+)/publish', [
    'methods'             => 'POST',
    'callback'            => [$this, 'publish_form'],
    'permission_callback' => fn() => current_user_can('edit_posts'),
]);

edit_posts é uma capacidade detida por Contribuidores — uma função que o WordPress intencionalmente restringe de publicar conteúdo. Não há verificação alguma de propriedade em relação ao form_id alvo. Qualquer usuário autenticado pode publicar qualquer formulário rascunho no site.

Fluxo de Ataque

root@kitploit:~
Atacante (Contribuidor)              API REST do FlowForms
        │                                   │
        │── POST /wp-login.php ────────────>│  (1) Autenticar como Contribuidor
        │<─ cookie wordpress_logged_in ─────│
        │                                   │
        │── GET /wp-admin/post-new.php ────>│  (2) Coletar nonce REST
        │<─ wpApiSettings.nonce ────────────│
        │                                   │
        │── GET /flowform/{id} ────────────>│  (3) Enumerar formulários rascunho
        │<─ "Form Not Published" ───────────│      (resposta não autenticada)
        │                                   │
        │── POST /flowforms/v1/forms/       │  (4) Acionar publicação em
        │        {id}/publish ─────────────>│      qualquer ID de formulário rascunho
        │                                   │      ← sem verificação de proprietário
        │<─ { "success": true } ────────────│
        │                                   │
        │   O formulário agora está AO VIVO │  (5) O rascunho contorna o
        │   no site sem aprovação editorial │      fluxo de trabalho editorial

Uso do Exploit

Pré-requisitos

  • Python 3.8+
  • Uma conta autenticada com pelo menos a função Contribuidor no site alvo

Instalação

root@kitploit:~
git clone https://github.com/0x00phantom-hat/CVE-2026-11991-FlowForms-Exploit
cd CVE-2026-11991-FlowForms-Exploit
pip install -r requirements.txt

Uso Básico

root@kitploit:~
python3 CVE-2026-11991-exploit.py \
  --url http://TARGET \
  --user contributor \
  --password password123 \
  --num_forms 100 \
  --id_start 1

Com Proxy (Burp Suite)

root@kitploit:~
python3 CVE-2026-11991-exploit.py \
  --url http://TARGET \
  --proxy http://127.0.0.1:8080 \
  --user contributor \
  --password password123 \
  --num_forms 100 \
  --id_start 1

Referência Completa de Flags

FlagDescriçãoObrigatório
--urlURL do WordPress alvo✅
--userNome de usuário do WordPress (Contribuidor+)✅
--passwordSenha do WordPress✅
--num_formsNúmero de IDs de formulários a enumerar✅
--id_startID inicial do formulário para enumeração✅
--proxyURL do proxy (ex.: http://127.0.0.1:8080)❌

Fluxo de Trabalho de Exploração

O exploit executa três etapas automatizadas:

Etapa 1 — Autenticar Faz login como o atacante (Contribuidor) e coleta um nonce REST API válido do wp-admin.

Etapa 2 — Enumerar Rascunhos Escaneia GET /flowform/{id} na faixa de IDs especificada. Formulários que retornam "Form Not Published" são coletados como alvos — estes são formulários rascunho sobre os quais o atacante não tem propriedade.

Etapa 3 — Publicar Envia POST /flowforms/v1/forms/{id}/publish com o nonce do atacante. O endpoint aceita a solicitação, promove o rascunho e torna o formulário ao vivo — sem nenhuma verificação de autorização sobre a propriedade.


Remediação

AçãoDetalhes
PatchSubstitua a verificação genérica edit_posts por current_user_can('edit_post', $form_id) — o segundo argumento vincula a verificação de capacidade ao objeto de post específico, aplicando as regras de propriedade do WordPress
MitigaçãoAté que o patch seja aplicado, restrinja as funções Contribuidor e Autor se o plugin estiver ativo

Implementação Segura

root@kitploit:~
// VULNERÁVEL
'permission_callback' => fn() => current_user_can('edit_posts'),

// SEGURO (corrigido)
private function can_edit_form($form_id) {
    return current_user_can('edit_post', $form_id);
}
'permission_callback' => fn($request) => $this->can_edit_form(absint($request['id'])),

Referências

  • CWE-639 — Bypass de Autorização por Chave Controlada pelo Usuário
  • register_rest_route() — Documentação do Desenvolvedor WordPress
  • current_user_can() — Documentação do Desenvolvedor WordPress
  • Plugin FlowForms — WordPress.org

Estrutura do Projeto

root@kitploit:~
CVE-2026-11991-FlowForms-Exploit/
├── CVE-2026-11991-exploit.py   # Exploit refinado com interface rica
├── requirements.txt            # Dependências Python
└── README.md                   # Este arquivo

Aviso Legal

Esta ferramenta é fornecida apenas para fins autorizados de teste de segurança e pesquisa educacional. O acesso não autorizado a sistemas de computador é ilegal sob as leis aplicáveis em todo o mundo. O autor não assume nenhuma responsabilidade pelo uso indevido deste software. Sempre obtenha permissão escrita explícita antes de testar qualquer sistema que você não possua.


Autor

Phantom Hat — Pesquisador de Segurança Independente

  • Medium: @phantom_hat
  • GitHub: 0x00phantom-hat

Esta pesquisa foi conduzida como parte de divulgação responsável de vulnerabilidades.

Baixar ferramenta