Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
vulnhuntr — Découverte de vulnérabilités zero-shot à l'aide de LLMs | Kitploit
Outils/GitHubGitHub/protectai/vulnhuntr
Analyse StatiqueAnalyse des VulnérabilitésAnalyse de CodeExploitation d'Applications WebTests d'IntrusionSécurité de l'IA
GitHubprotectai/vulnhuntr

vulnhuntr

Découverte de vulnérabilités zero-shot à l'aide de LLMs

Voir le dépôt
2.7k318il y a 1 anVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Logo Vulnhuntr

Un outil pour identifier les vulnérabilités exploitables à distance à l'aide des LLM et de l'analyse statique de code.

Les premières vulnérabilités 0day au monde découvertes de manière autonome par une IA

Description

Vulnhuntr exploite la puissance des LLM pour créer et analyser automatiquement des chaînes d'appels de code complètes, depuis l'entrée utilisateur distante jusqu'à la sortie serveur, afin de détecter des vulnérabilités complexes, multi-étapes et contournant la sécurité qui vont bien au-delà de ce que les outils traditionnels d'analyse statique de code sont capables de faire. Consultez tous les détails, y compris la sortie de Vulnhuntr pour toutes les 0day, ici : Blog Protect AI Vulnhuntr

Vulnérabilités trouvées

[!TIP] Vous avez trouvé une vulnérabilité avec Vulnhuntr ? Soumettez un rapport sur huntr.com pour obtenir $$ et soumettez une PR pour l'ajouter à la liste ci-dessous !

[!NOTE] Ce tableau n'est qu'un échantillon des vulnérabilités trouvées jusqu'à présent. Nous lèverons les caviardages au fur et à mesure que les périodes de divulgation responsable se termineront.

DépôtÉtoilesVulnérabilités
gpt_academic67kLFI, XSS
ComfyUI66kXSS
Langflow46kRCE, IDOR
FastChat37kSSRF
Ragflow31kRCE
LLaVA21kSSRF
gpt-researcher17kAFO
Letta14kAFO

Limites

  • Seules les bases de code Python sont prises en charge.
  • Peut uniquement identifier les classes de vulnérabilités suivantes :
    • Inclusion locale de fichier (LFI)
    • Écrasement arbitraire de fichier (AFO)
    • Exécution de code à distance (RCE)
    • Scripting intersite (XSS)
    • Injection SQL (SQLI)
    • Falsification de requête côté serveur (SSRF)
    • Référence directe à un objet non sécurisée (IDOR)

Installation

[!IMPORTANT] Vulnhuntr exige strictement Python 3.10 en raison d'un certain nombre de bugs dans Jedi, qu'il utilise pour analyser le code Python. Il ne fonctionnera pas de manière fiable s'il est installé avec d'autres versions de Python.

Nous recommandons d'utiliser pipx ou Docker pour installer et exécuter facilement Vulnhuntr.

Avec Docker :

root@kitploit:~
docker build -t vulnhuntr https://github.com/protectai/vulnhuntr.git#main

Avec pipx :

root@kitploit:~
pipx install git+https://github.com/protectai/vulnhuntr.git --python python3.10

Vous pouvez également installer directement depuis la source avec poetry :

root@kitploit:~
git clone https://github.com/protectai/vulnhuntr
cd vulnhuntr && poetry install

Utilisation

Cet outil est conçu pour analyser un dépôt GitHub à la recherche de vulnérabilités potentiellement exploitables à distance. L'outil nécessite une clé API et le chemin local d'un dépôt GitHub. Vous pouvez également spécifier facultativement un point de terminaison personnalisé pour le service LLM.

[!CAUTION] Définissez toujours des limites de dépenses ou surveillez de près les coûts auprès du fournisseur LLM que vous utilisez. Cet outil peut générer des factures élevées, car il essaie d'insérer autant de code que possible dans la fenêtre de contexte du LLM.

[!TIP] Nous recommandons d'utiliser Claude comme LLM. Lors de nos tests, nous avons obtenu de meilleurs résultats avec lui qu'avec GPT.

Interface en ligne de commande

root@kitploit:~
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)

Exemples

Depuis une installation pipx, analysez l'intégralité du dépôt avec Claude :

root@kitploit:~
export ANTHROPIC_API_KEY="sk-1234"
vulnhuntr -r /path/to/target/repo/

[!TIP] Nous recommandons de donner à Vulnhuntr des fichiers spécifiques qui gèrent les entrées utilisateur distantes et de les analyser individuellement.

Depuis une installation pipx, analysez le fichier /path/to/target/repo/server.py avec GPT-4o. Vous pouvez également spécifier un sous-répertoire au lieu d'un fichier :

root@kitploit:~
export OPENAI_API_KEY="sk-1234"
vulnhuntr -r /path/to/target/repo/ -a server.py -l gpt 

Depuis une installation Docker, exécutez avec Claude et un point de terminaison personnalisé pour analyser /local/path/to/target/repo/repo-subfolder/target-file.py :

root@kitploit:~
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

Expérimental

Ollama est inclus en option ; cependant, nous n'avons pas réussi avec les modèles open source à structurer correctement leur sortie.

root@kitploit:~
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

Flux logique

Logique de VulnHuntr

  • Le LLM résume le README et l'inclut dans le prompt système
  • Le LLM effectue une analyse initiale sur un fichier entier et signale toute vulnérabilité potentielle
  • Vulnhuntr donne ensuite au LLM un prompt spécifique à la vulnérabilité pour une analyse secondaire
  • Chaque fois que le LLM analyse le code, il demande des fonctions/classes/variables de contexte supplémentaires à partir d'autres fichiers du projet
  • Il continue ainsi jusqu'à ce que toute la chaîne d'appels, de l'entrée utilisateur au traitement serveur, soit complète, puis fournit une analyse finale
  • L'analyse finale comprend son raisonnement, un exploit de preuve de concept et un score de confiance

[!TIP] En général, des scores de confiance < 7 signifient qu'une vulnérabilité est peu probable. Un score de confiance de 7 signifie qu'il faut enquêter, et un score de 8 ou plus signifie qu'il s'agit très probablement d'une vulnérabilité valide.

Sortie

L'outil génère un rapport détaillé des vulnérabilités trouvées dans les fichiers analysés. Le rapport comprend :

  • Résultats de l'évaluation initiale pour chaque fichier.
  • Résultats de l'évaluation secondaire avec les fonctions de contexte et les références de classe.
  • Scores de confiance pour les vulnérabilités trouvées.
  • Journaux du processus d'analyse.
  • Exploit PoC

Voici un exemple de rapport Vulnhuntr décrivant une vulnérabilité d'exécution de code à distance 0day dans Ragflow (désormais corrigée) :

root@kitploit:~
scratchpad:
  1. Analyzing the add_llm function in llm_app.py. 2. Identified user input used as keys to access dictionaries: EmbeddingModel, ChatModel, RerankModel,
CvModel, and TTSModel. 3. These dictionaries contain class references, which are instantiated with user-supplied parameters. 4. The factory variable is 
directly used from user input (req['llm_factory']) without proper validation. 5. The llm_name is also derived from user input in most cases. 6. The 
instantiation of these classes occurs in try-except blocks, but exceptions are only used for error messages, not preventing execution. 7. The api_key 
and other sensitive information are passed directly to these instantiated classes. 8. There's no comprehensive input validation or sanitization for the 
factory or llm_name variables. 9. The vulnerability is in a route decorated with @login_required, indicating it's accessible to authenticated users. 10.
Reviewing the EmbeddingModel, ChatModel, RerankModel, CvModel, and TTSModel dictionaries to understand their contents and potential for exploitation.
----------------------------------------

analysis:
  The add_llm function in llm_app.py contains a critical Remote Code Execution (RCE) vulnerability. The function uses user-supplied input 
(req['llm_factory'] and req['llm_name']) to dynamically instantiate classes from the EmbeddingModel, ChatModel, RerankModel, CvModel, and TTSModel 
dictionaries. This pattern of using user input as a key to access and instantiate classes is inherently dangerous, as it allows an attacker to 
potentially execute arbitrary code. The vulnerability is exacerbated by the lack of comprehensive input validation or sanitization on these 
user-supplied values. While there are some checks for specific factory types, they are not exhaustive and can be bypassed. An attacker could potentially
provide a malicious value for 'llm_factory' that, when used as an index to these model dictionaries, results in the execution of arbitrary code. The 
vulnerability is particularly severe because it occurs in a route decorated with @login_required, suggesting it's accessible to authenticated users, 
which might give a false sense of security.
----------------------------------------

poc:
  POST /add_llm HTTP/1.1
  Host: target.com
  Content-Type: application/json
  Authorization: Bearer <valid_token>
  
  {
      "llm_factory": "__import__('os').system",
      "llm_name": "id",
      "model_type": "EMBEDDING",
      "api_key": "dummy_key"
  }
  
  This payload attempts to exploit the vulnerability by setting 'llm_factory' to a string that, when evaluated, imports the os module and calls system. 
The 'llm_name' is set to 'id', which would be executed as a system command if the exploit is successful.
----------------------------------------

confidence_score:
  8
----------------------------------------

vulnerability_types:
  - RCE
----------------------------------------

Journalisation

L'outil consigne le processus d'analyse et les résultats dans un fichier nommé vulnhuntr.log. Ce fichier contient des informations détaillées sur chaque étape de l'analyse, y compris les évaluations initiale et secondaire.

Auteurs

  • Dan McInerney: [email protected], @DanHMcinerney
  • Marcello Salvati: [email protected], @byt3bl33d3r
Télécharger l’outil