
Proof of Concept: CVE-2026-21858 is vulnerability on n8n where unauthenticated remote attackers can access sensitive files.
Un outil de recherche en sécurité pour détecter CVE-2026-21858, une vulnérabilité critique d'exécution de code à distance dans la plateforme d'automatisation de workflows n8n.
| Champ | Valeur |
|---|---|
| Identifiant CVE | CVE-2026-21858 |
| Score CVSS v3.1 | 10.0 (Critique) |
| Vecteur CVSS | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H |
| Classification CWE | CWE-94 : Contrôle inapproprié de la génération de code |
| Éditeur | n8n GmbH |
| Produit | n8n Workflow Automation |
| Date de divulgation | Janvier 2026 |
| Correctif disponible | Oui (v1.121.0+) |
Une vulnérabilité critique existe dans les versions 1.65.0 à 1.120.x de n8n, permettant à des attaquants distants non authentifiés d'exécuter du code arbitraire sur le serveur sous-jacent. La vulnérabilité est exploitée via des workflows basés sur des formulaires spécialement conçus, permettant un accès non autorisé au système de fichiers et l'exécution de commandes.
| Plage de versions | Statut |
|---|---|
| < 1.65.0 | Non affecté |
| 1.65.0 - 1.120.x | Vulnérable |
| >= 1.121.0 | Corrigé |
La vulnérabilité provient d'une validation insuffisante des entrées dans le moteur d'exécution de workflows basés sur des formulaires. Lors du traitement des données fournies par l'utilisateur via des déclencheurs de formulaires, n8n ne parvient pas à nettoyer correctement les paramètres d'entrée avant de les transmettre aux contextes d'exécution internes.
| Paquet | Version minimale | Objectif |
|---|---|---|
| requests | 2.31.0 | Gestion des requêtes HTTP |
| urllib3 | 2.0.0 | Gestion des URL et des connexions |
| packaging | 23.0 | Logique de comparaison de versions |
uv est un installateur et résolveur de paquets Python rapide.
# Clone the repository
git clone https://github.com/sh4den/CVE-2026-21858.git
cd CVE-2026-21858
# Install dependencies and create virtual environment
uv sync
# Run the tool
uv run python main.py -u https://target.example.com
# Clone the repository
git clone https://github.com/sh4den/CVE-2026-21858.git
cd CVE-2026-21858
# Create virtual environment (recommended)
python3 -m venv venv
source venv/bin/activate # Linux/macOS
# or
.\venv\Scripts\activate # Windows
# Install dependencies
pip install requests>=2.31.0 urllib3>=2.0.0 packaging>=23.0
# Run the tool
python main.py -u https://target.example.com
# Ensure Python 3.12+ is installed
python3 --version
# Install required packages
pip install requests urllib3 packaging
# Download and run
curl -O https://raw.githubusercontent.com/sh4den/CVE-2026-21858/main/main.py
python3 main.py -u https://target.example.com
Usage:
python main.py -u <target_url> Scan single target
python main.py -l <targets_file> Scan multiple targets from file
Arguments:
-u Single target URL
-l Path to file containing target URLs (one per line)
Tester une instance n8n unique pour la vulnérabilité :
python main.py -u https://n8n.example.com
python main.py -u http://192.168.1.100:5678
Analyser plusieurs cibles à partir d'un fichier :
python main.py -l targets.txt
Format du fichier de cibles (targets.txt) :
https://n8n.company-a.com
https://n8n.company-b.com:5678
http://10.0.0.50:5678
n8n.company-c.com
192.168.1.100:5678
Notes :
https:// par défautL'outil utilise une détection passive de version via les étapes suivantes :
/signinn8n:config:sentry dans le HTML[email protected]GET /signin HTTP/1.1
Host: target.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9
Accept-Language: en-US,en;q=0.5
Connection: close
Mettre à niveau n8n : Mettez à jour vers la version 1.121.0 ou ultérieure immédiatement
# Using npm
npm update -g n8n
# Using Docker
docker pull n8nio/n8n:latest
Isolement réseau : Limitez l'accès aux instances n8n
Audit des workflows : Passez en revue tous les workflows existants
# Vérifier la version de n8n après la mise à jour
n8n --version
# Ou vérifier via cet outil
python main.py -u https://your-n8n-instance.com
# Attendu : [SAFE] ... Version : 1.121.0+ (non vulnérable)
Examinez les journaux de n8n et du serveur web pour les motifs suivants :
IMPORTANT : LIRE AVANT UTILISATION
Cet outil est fourni strictement pour :
Utilisations interdites :
Responsabilité : Les auteurs et contributeurs déclinent toute responsabilité en cas d'utilisation abusive de ce logiciel. Les utilisateurs sont seuls responsables du respect de toutes les lois applicables et de l'obtention des autorisations appropriées avant d'effectuer tout test de sécurité.
Avis légal : L'accès non autorisé aux systèmes informatiques est une infraction pénale dans la plupart des juridictions, y compris mais sans s'y limiter, les violations du Computer Fraud and Abuse Act (CFAA) aux États-Unis, du Computer Misuse Act au Royaume-Uni et des législations similaires dans le monde entier.
| Version | Date | Modifications |
|---|---|---|
| 1.0.0 | 2026-01-20 | Version initiale |
Ce projet est fourni en l'état uniquement à des fins de recherche en sécurité autorisées. Aucune garantie, expresse ou implicite, n'est fournie. Utilisez-le à vos propres risques et conformément aux lois applicables.
| Indicateur | Couleur | Description |
|---|
[VULNERABLE] | Vert | La cible exécute une version vulnérable de n8n (1.65.0 - 1.120.x) |
[SAFE] | Bleu | La cible exécute une version corrigée (>= 1.121.0 ou < 1.65.0) |
[WARNING] | Jaune | Instance n8n détectée mais extraction de la version échouée |
[ERROR] | Rouge | Échec de connexion, délai dépassé ou cible non-n8n |
| Action | Priorité | Description |
|---|
| Gestion des correctifs | Critique | Établir des procédures de mise à jour automatisées pour n8n |
| Contrôle d'accès | Élevée | Mettre en place l'authentification pour tous les endpoints n8n |
| Segmentation réseau | Élevée | Isoler n8n des réseaux publics |
| Surveillance | Moyenne | Déployer la journalisation et les alertes pour l'activité n8n |
| Moindre privilège | Moyenne | Exécuter n8n avec les autorisations minimales requises |
| Sauvegarde | Moyenne | Maintenir des sauvegardes régulières des configurations de workflow |