Bannt08/Research-CVE-2026-21858
GitHub: Bannt08/Research-CVE-2026-21858
针对 n8n 工作流自动化平台 CVE-2026-21858 漏洞的深度安全研究,展示从身份验证绕过到远程代码执行的完整利用链。
Stars: 0 | Forks: 0
# [CVE-2026-21858] Ni8mare:n8n 身份验证绕过与远程代码执行
1. 漏洞概述
- 名称:Ni8mare
- CVE ID:CVE-2026-21858
- CVSS 评分:10.0(严重)
- 漏洞类型:身份验证绕过,本地文件包含 (LFI),远程代码执行 (RCE)
- 受影响版本:n8n 1.65.0 及更早版本
- 修复版本:n8n 1.121.0(2025 年 11 月发布)
2. 漏洞描述
此严重漏洞允许未经身份验证的远程攻击者通过基于表单的工作流未经授权访问服务器文件。这种本地文件包含 (LFI) 暴露了敏感数据,并为更深入的系统渗透提供了立足点。
3. 技术分析
CVE-2026-21858 的根本原因在于 n8n 处理 webhook 和上传数据的机制。
失效机制
- **Content-Type** 处理:当接收到 HTTP 请求时,n8n 会根据 **Content-Type** 头分析内容,以决定如何处理数据。
- 验证缺口:工作流中的某些文件处理函数在处理文件数据之前,未能充分检查 **Content-Type**。
- 变量操纵:这一疏忽使得攻击者能够控制包含文件信息的变量,并指定系统上的任意路径,从而有效地将上传功能转变为未经授权的本地文件读取机制。
- 漏洞逻辑:在正常流程中,n8n 使用 Formidable 将 **multipart/form-data** 上传安全地解析为随机临时路径。然而,如果攻击者将 **Content-Type** 更改为 **application/json**,n8n 会使用不同的解析器 (`parseBody()`) 直接使用用户控制的值(包括任意文件路径)填充 **req.body.files**。
- 受影响的源代码:关键缺陷位于 **packages\nodes-base\nodes\Form\utils\utils.ts** 中。
4. 漏洞利用链
研究人员已经展示了一条导致完全接管系统的实际漏洞利用链:
- 数据库访问:直接读取 n8n 数据库文件,以提取管理员 ID、电子邮件和哈希密码。
- 加密密钥提取:读取配置文件以获取系统的加密密钥。
- 会话伪造:使用伪造的 cookie 伪造管理员登录会话。
- 远程代码执行 (RCE):一旦获得管理员访问权限,攻击者就可以创建新的工作流,以在主机服务器上执行任意命令。
- 全面接管:完全访问权限会导致所有存储的 API 密钥、OAuth token、数据库连接和云服务凭据的泄露。
5. PoC
目标端点:漏洞利用通常针对 **/form/vulnerable-form** 等端点。

结果:成功执行表明能够读取 `/etc/passwd` 等系统文件,从而确认了该漏洞。

标签:CISA项目, Content-Type, CVE-2026-21858, CVSS 10.0, Formidable, HTTP工具, LFI, MITM代理, Multipart解析绕过, n8n, Ni8mare, PoC, RCE, Webhook, XXE攻击, 严重漏洞, 临时文件, 力导向图, 工作流引擎, 开源自动化, 数据库访问, 暴力破解, 本地文件包含, 漏洞利用链, 系统接管, 编程工具, 网络安全, 网络安全审计, 节点.js, 身份验证绕过, 远程代码执行, 隐私保护