
Le contournement de la liste noire des variables d'environnement MCP mène à une RCE non authentifiée dans Flowise 3.1.1
CVE 2026-69263 est un contournement du correctif de l'ancienne vulnérabilité RCE, corrigée en août 2025. Le correctif a introduit une liste de blocage (denylist) qui bloquait l'installation de paquets arbitraires.
Comme npm lit sa configuration depuis les variables d'environnement, définir la variable d'environnement npm_config_yes=true réactive le comportement bloqué.
Flowise 3.1.1, version en vigueur au moment du signalement. Corrigé dans la 3.1.3
La configuration de serveur MCP suivante contourne le correctif avec CUSTOM_MCP_SECURITY_CHECK=true :
{
"mcpServers": {
"bypass": {
"command": "npx",
"args": ["cowsay"],
"env": {
"npm_config_yes": "true"
}
}
}
}
cowsay est un paquet bénin utilisé ici uniquement pour prouver l'exécution. Un véritable attaquant substituerait sa propre charge utile.
Chemin d'exécution :
validateCommandFlags passe, car args ne contient aucun flag bloqué.validateEnvironmentVariables passe, car npm_config_yes ne figure pas dans la liste de blocage de quatre éléments.npx installe et exécute automatiquement le paquet spécifié, prouvant qu'une exécution arbitraire est possible avec les privilèges du processus Flowise.Sur un déploiement par défaut sans authentification, tout utilisateur non authentifié qui peut atteindre l'API Flowise peut déclencher cela.
Les variables suivantes sont également absentes de la liste de blocage et influencent l'exécution via les autres interpréteurs autorisés :
| Variable | Commande | Effet |
|---|---|---|
npm_config_prefix | npx | Redirige l'installation des paquets vers un chemin contrôlé par l'attaquant |
npm_config_userconfig | npx | Charge une configuration .npmrc contrôlée par l'attaquant |
NODE_PATH | node | Charge des modules depuis un chemin contrôlé par l'attaquant |
PYTHONPATH | python3 | Charge des modules depuis un chemin contrôlé par l'attaquant |
PYTHONSTARTUP | python3 | Exécute un fichier au démarrage de l'interpréteur (uniquement en sessions interactives) |
Cette vulnérabilité RCE a fait l'objet d'une divulgation responsable aux mainteneurs de Flowise via leur dépôt GitHub. Vous pouvez trouver le rapport ici