
Avis de sécurité : Vulnérabilité critique d'exécution de code à distance dans n8n (CVE-2025-68613)
Une vulnérabilité critique a été identifiée dans l'outil d'automatisation de workflows n8n, permettant l'exécution de code arbitraire. Les utilisateurs authentifiés disposant des autorisations pour créer ou modifier des workflows peuvent exploiter cette faille pour prendre le contrôle du système exécutant l'instance n8n. Résumé
CVE ID CVE-2025-68613 Vulnérabilité Contrôle inadéquat des ressources de code gérées dynamiquement Gravité Critique Impact Exécution de commandes arbitraires, compromission totale du système Cause racine L'évaluateur d'expressions ne parvient pas à assainir l'accès à l'objet process sous-jacent de Node.js (this.process), permettant à un attaquant d'importer et d'utiliser des modules système comme child_process. Impact
Un attaquant qui exploite avec succès cette vulnérabilité peut :
Exécuter des commandes arbitraires sur le serveur.
Accéder au système de fichiers et le manipuler.
Exposer des variables d'environnement sensibles.
Obtenir un contrôle total du système hôte n8n.
Versions affectées et corrigées Statut Version(s) Vulnérable Toutes les versions antérieures à 1.122.0 Corrigé Version 1.122.0 et ultérieures Atténuation
Il est essentiel de mettre à niveau votre instance n8n vers la version 1.122.0 ou une version ultérieure immédiatement afin de résoudre cette vulnérabilité.
Détails de l'exploit pour CVE-2025-68613
Ce répertoire contient une preuve de concept pour la vulnérabilité d'exécution de code à distance (RCE) dans n8n (CVE-2025-68613). Prérequis
Une instance n8n avec une version antérieure à 1.122.0.
Un accès authentifié avec les autorisations pour créer et modifier des workflows.
Étapes de reproduction
Créer un workflow :
Connectez-vous à votre instance n8n vulnérable.
Cliquez sur "Add workflow" pour démarrer un nouveau workflow.
Ajouter des nœuds :
Ajoutez un nœud "Manual Trigger" au canevas.
Ajoutez un nœud "Set" et connectez-le à la sortie du nœud "Manual Trigger".
Configurer le nœud Set :
Cliquez sur le nœud "Set" pour ouvrir son panneau de configuration.
Cliquez sur "Add Value" et sélectionnez "String" dans le menu déroulant.
Définissez le champ Name de la nouvelle valeur sur result.
Cliquez sur l'icône "=" à côté du champ "Value" pour passer en mode expression.
Injecter la charge utile de l'exploit :
Dans le champ d'expression de la valeur result, collez la charge utile suivante :
Exploit :
{{ (function(){ return this.process.mainModule.require('child_process').execSync('id').toString() })() }}
Exécuter et vérifier :
Cliquez sur le bouton "Execute step".
Vérifiez la sortie du nœud "SetCapture d
". Si l'exploit réussit, vous verrez la sortie de la commande id, confirmant l'exécution de code.
