
Preuve de concept : CVE-2026-21858 est une vulnérabilité sur n8n où des attaquants distants non authentifiés peuvent accéder à des fichiers sensibles.
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éfaut| 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 |
L'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