
Descubrimiento de vulnerabilidades zero-shot mediante LLMs
Una herramienta para identificar vulnerabilidades explotables de forma remota utilizando LLMs y análisis estático de código.
Las primeras vulnerabilidades 0day del mundo descubiertas de forma autónoma por IA
Vulnhuntr aprovecha el poder de los LLMs para crear y analizar automáticamente cadenas de llamadas de código completas, desde la entrada remota del usuario hasta la salida del servidor, para la detección de vulnerabilidades complejas, de múltiples pasos y que evaden la seguridad, y que van mucho más allá de lo que las herramientas tradicionales de análisis estático de código son capaces de realizar. Consulta todos los detalles, incluida la salida de Vulnhuntr para todos los 0-days, aquí: Protect AI Vulnhuntr Blog
[!TIP] ¿Encontraste una vulnerabilidad usando Vulnhuntr? Envía un informe a huntr.com para obtener $$ y envía un PR para añadirla a la lista de abajo.
[!NOTE] Esta tabla es solo una muestra de las vulnerabilidades encontradas hasta ahora. Retiraremos la redacción a medida que terminen los períodos de divulgación responsable.
| Repositorio | Estrellas | 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] Vulnhuntr requiere estrictamente Python 3.10 debido a una serie de errores en Jedi, que utiliza para analizar el código Python. No funcionará de forma fiable si se instala con cualquier otra versión de Python.
Recomendamos usar pipx o Docker para instalar y ejecutar Vulnhuntr fácilmente.
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, puedes instalar directamente desde el código fuente usando poetry:
git clone https://github.com/protectai/vulnhuntr
cd vulnhuntr && poetry install
Esta herramienta está diseñada para analizar un repositorio de GitHub en busca de posibles vulnerabilidades explotables de forma remota. La herramienta requiere una clave de API y la ruta local a un repositorio de GitHub. También puedes especificar opcionalmente un endpoint personalizado para el servicio LLM.
[!CAUTION] Establece siempre límites de gasto o supervisa de cerca los costos con el proveedor de LLM que uses. Esta herramienta tiene el potencial de generar facturas elevadas, ya que intenta incluir la mayor cantidad de código posible en la ventana de contexto de los LLM.
[!TIP] Recomendamos usar Claude como LLM. Durante las pruebas hemos obtenido mejores resultados con él que con 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)
Desde una instalación con pipx, analiza todo el repositorio usando Claude:
export ANTHROPIC_API_KEY="sk-1234"
vulnhuntr -r /path/to/target/repo/
[!TIP] Recomendamos proporcionar a Vulnhuntr archivos específicos que manejen la entrada remota del usuario y analizarlos individualmente.
Desde una instalación con pipx, analiza el archivo /path/to/target/repo/server.py usando GPT-4o. También puedes especificar un subdirectorio en lugar de un archivo:
export OPENAI_API_KEY="sk-1234"
vulnhuntr -r /path/to/target/repo/ -a server.py -l gpt
Desde una instalación con Docker, ejecuta usando Claude y un endpoint personalizado para analizar /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 se incluye como opción; sin embargo, no hemos tenido éxito con los modelos de código abierto a la hora de estructurar su salida correctamente.
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] Generalmente, las puntuaciones de confianza < 7 significan que es poco probable que haya una vulnerabilidad. Las puntuaciones de 7 significan que debe investigarse, y las puntuaciones de 8+ significan que es muy probable que sea una vulnerabilidad válida.
La herramienta genera un informe detallado de las vulnerabilidades encontradas en los archivos analizados. El informe incluye: