
Descoberta de vulnerabilidades zero-shot usando LLMs
Uma ferramenta para identificar vulnerabilidades exploráveis remotamente usando LLMs e análise estática de código.
As primeiras vulnerabilidades 0day do mundo descobertas por IA autônoma
O Vulnhuntr aproveita o poder dos LLMs para criar e analisar automaticamente cadeias de chamada de código inteiras, começando na entrada remota do usuário e terminando na saída do servidor, para a detecção de vulnerabilidades complexas, de múltiplas etapas e que contornam a segurança, indo muito além do que as ferramentas tradicionais de análise estática de código são capazes de realizar. Veja todos os detalhes, incluindo a saída do Vulnhuntr para todas as 0-days aqui: Blog Protect AI Vulnhuntr
[!TIP] Encontrou uma vulnerabilidade usando o Vulnhuntr? Envie um relatório para huntr.com para ganhar $$ e envie um PR para adicioná-la à lista abaixo!
[!NOTE] Esta tabela é apenas uma amostra das vulnerabilidades encontradas até agora. Removeremos o sigilo à medida que os períodos de divulgação responsável terminarem.
| Repositório | Estrelas | Vulnerabilidades |
|---|---|---|
| gpt_academic | 67k | LFI, XSS |
| ComfyUI | 66k | XSS |
| Langflow | 46k | RCE, IDOR |
| FastChat | 37k | SSRF |
| Ragflow | 31k | RCE |
| LLaVA | 21k | SSRF |
| gpt-researcher | 17k | AFO |
| Letta | 14k | AFO |
[!IMPORTANT] O Vulnhuntr exige estritamente Python 3.10 por causa de uma série de bugs no Jedi, que ele usa para analisar código Python. Ele não funcionará de forma confiável se for instalado com qualquer outra versão do Python.
Recomendamos usar pipx ou Docker para instalar e executar o Vulnhuntr facilmente.
Usando Docker:
docker build -t vulnhuntr https://github.com/protectai/vulnhuntr.git#main
Usando pipx:
pipx install git+https://github.com/protectai/vulnhuntr.git --python python3.10
Alternativamente, você pode instalar diretamente da fonte usando poetry:
git clone https://github.com/protectai/vulnhuntr
cd vulnhuntr && poetry install
Esta ferramenta foi projetada para analisar um repositório do GitHub em busca de possíveis vulnerabilidades exploráveis remotamente. A ferramenta requer uma chave de API e o caminho local de um repositório do GitHub. Você também pode, opcionalmente, especificar um endpoint personalizado para o serviço de LLM.
[!CAUTION] Sempre defina limites de gastos ou monitore de perto os custos com o provedor de LLM que você usa. Esta ferramenta tem potencial para gerar contas altas, pois tenta encaixar o máximo de código possível na janela de contexto dos LLMs.
[!TIP] Recomendamos usar Claude como LLM. Em nossos testes, obtivemos melhores resultados com ele do que com GPT.
usage: vulnhuntr [-h] -r ROOT [-a ANALYZE] [-l {claude,gpt,ollama}] [-v]
Analyze a GitHub project for vulnerabilities. Export your ANTHROPIC_API_KEY/OPENAI_API_KEY before running.
options:
-h, --help show this help message and exit
-r ROOT, --root ROOT Path to the root directory of the project
-a ANALYZE, --analyze ANALYZE
Specific path or file within the project to analyze
-l {claude,gpt,ollama}, --llm {claude,gpt,ollama}
LLM client to use (default: claude)
-v, --verbosity Increase output verbosity (-v for INFO, -vv for DEBUG)
A partir de uma instalação via pipx, analise o repositório inteiro usando Claude:
export ANTHROPIC_API_KEY="sk-1234"
vulnhuntr -r /path/to/target/repo/
[!TIP] Recomendamos fornecer ao Vulnhuntr arquivos específicos que lidam com entrada remota do usuário e escaneá-los individualmente.
A partir de uma instalação via pipx, analise o arquivo /path/to/target/repo/server.py usando GPT-4o. Você também pode especificar um subdiretório em vez de um arquivo:
export OPENAI_API_KEY="sk-1234"
vulnhuntr -r /path/to/target/repo/ -a server.py -l gpt
A partir de uma instalação via docker, execute usando Claude e um endpoint personalizado para analisar /local/path/to/target/repo/repo-subfolder/target-file.py:
docker run --rm -e ANTHROPIC_API_KEY=sk-1234 -e ANTHROPIC_BASE_URL=https://localhost:1234/api -v /local/path/to/target/repo:/repo vulnhuntr:latest -r /repo -a repo-subfolder/target-file.py
Experimental
Ollama está incluído como uma opção; no entanto, não tivemos sucesso com os modelos de código aberto estruturando sua saída corretamente.
export OLLAMA_BASE_URL=http://localhost:11434/api/generate
export OLLAMA_MODEL=llama3.2
vulnhuntr -r /path/to/target/repo/ -a server.py -l ollama

[!TIP] Geralmente, pontuações de confiança < 7 significam que provavelmente não há uma vulnerabilidade. Pontuações de confiança 7 significam que ela deve ser investigada, e pontuações de confiança 8+ significam que é muito provável que seja uma vulnerabilidade válida.
A ferramenta gera um relatório detalhado das vulnerabilidades encontradas nos arquivos analisados. O relatório inclui:
Abaixo está um exemplo de um relatório do Vulnhuntr descrevendo uma vulnerabilidade de execução remota de código 0-day no Ragflow (agora corrigida):