一个用于检测CVE-2026-21858的安全研究工具,该漏洞是n8n工作流自动化平台中的一个严重远程代码执行漏洞。
| 字段 | 值 |
|---|---|
| CVE标识符 | CVE-2026-21858 |
| CVSS v3.1评分 | 10.0 (严重) |
| CVSS向量 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H |
| CWE分类 | CWE-94:代码生成控制不当 |
| 供应商 | n8n GmbH |
| 产品 | n8n工作流自动化 |
| 披露日期 | 2026年1月 |
| 可用补丁 | 是 (v1.121.0+) |
n8n 1.65.0至1.120.x版本存在一个严重漏洞,允许未经身份验证的远程攻击者在底层服务器上执行任意代码。该漏洞通过特制的基于表单的工作流被利用,能够实现未授权的文件系统访问和命令执行。
| 版本范围 | 状态 |
|---|---|
| < 1.65.0 | 不受影响 |
| 1.65.0 - 1.120.x | 受影响 |
| >= 1.121.0 | 已修补 |
该漏洞源于基于表单的工作流执行引擎中的输入验证不足。当通过表单触发器处理用户提供的数据时,n8n未能在将输入参数传递到内部执行上下文之前对其进行适当清理。
| 包名 | 最低版本 | 用途 |
|---|---|---|
| requests | 2.31.0 | HTTP请求处理 |
| urllib3 | 2.0.0 | URL和连接管理 |
| packaging | 23.0 | 版本比较逻辑 |
uv 是一个快速的Python包安装器和解析器。
# 克隆仓库
git clone https://github.com/sh4den/CVE-2026-21858.git
cd CVE-2026-21858
# 安装依赖并创建虚拟环境
uv sync
# 运行工具
uv run python main.py -u https://target.example.com
# 克隆仓库
git clone https://github.com/sh4den/CVE-2026-21858.git
cd CVE-2026-21858
# 创建虚拟环境(推荐)
python3 -m venv venv
source venv/bin/activate # Linux/macOS
# 或
.\venv\Scripts\activate # Windows
# 安装依赖
pip install requests>=2.31.0 urllib3>=2.0.0 packaging>=23.0
# 运行工具
python main.py -u https://target.example.com
# 确保已安装Python 3.12+
python3 --version
# 安装所需包
pip install requests urllib3 packaging
# 下载并运行
curl -O https://raw.githubusercontent.com/sh4den/CVE-2026-21858/main/main.py
python3 main.py -u https://target.example.com
用法:
python main.py -u <目标URL> 扫描单个目标
python main.py -l <目标文件> 从文件扫描多个目标
参数:
-u 单个目标URL
-l 包含目标URL的文件路径(每行一个)
测试单个n8n实例是否存在漏洞:
python main.py -u https://n8n.example.com
python main.py -u http://192.168.1.100:5678
从文件扫描多个目标:
python main.py -l targets.txt
目标文件格式 (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
注意:
https://该工具通过以下步骤进行被动版本检测:
/signin端点发送HTTP GET请求n8n:config:sentry元标签[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
升级n8n:立即升级到1.121.0或更高版本
# 使用npm
npm update -g n8n
# 使用Docker
docker pull n8nio/n8n:latest
网络隔离:限制对n8n实例的访问
工作流审计:审查所有现有工作流
# 更新后验证n8n版本
n8n --version
# 或通过此工具检查
python main.py -u https://your-n8n-instance.com
# 预期输出:[SAFE] ... 版本:1.121.0+ (不受影响)
审查n8n和Web服务器日志中的以下模式:
重要:使用前请阅读
本工具严格仅用于:
禁止用途:
责任: 作者和贡献者不对本软件的滥用承担任何责任。用户全权负责确保遵守所有适用法律,并在进行任何安全测试前获得适当的授权。
法律提示: 在大多数司法管辖区,未授权访问计算机系统是一种刑事犯罪,包括但不限于美国《计算机欺诈和滥用法案》(CFAA)、英国《计算机滥用法案》以及全球类似立法。
| 版本 | 日期 | 变更 |
|---|---|---|
| 1.0.0 | 2026-01-20 | 初始发布 |
本项目按“原样”提供,仅供授权的安全研究目的使用。不提供任何明示或暗示的担保。使用风险自负,并遵守适用法律。
| 指示器 | 颜色 | 描述 |
|---|
[VULNERABLE] | 绿色 | 目标运行存在漏洞的n8n版本(1.65.0 - 1.120.x) |
[SAFE] | 蓝色 | 目标运行已修补版本(>= 1.121.0 或 < 1.65.0) |
[WARNING] | 黄色 | 检测到n8n实例但版本提取失败 |
[ERROR] | 红色 | 连接失败、超时或非n8n目标 |
| 措施 | 优先级 | 描述 |
|---|
| 补丁管理 | 严重 | 为n8n建立自动更新流程 |
| 访问控制 | 高 | 为所有n8n端点实施身份验证 |
| 网络分段 | 高 | 将n8n与公共网络隔离 |
| 监控 | 中 | 部署针对n8n活动的日志记录和告警 |
| 最小权限 | 中 | 以最小必要权限运行n8n |
| 备份 | 中 | 定期备份工作流配置 |