官网:http://securitytech.cc/
深入理解 CVE-2025–68613:n8n 工作流自动化工具中的高危远程代码执行漏洞
在撰写本文时(2025 年 12 月 24 日),网络安全社区因 CVE-2025–68613 的出现而受到强烈震动。该漏洞被认定为 高危漏洞,存在于流行的开源工作流自动化平台 n8n 中。
本文将首先介绍什么是 n8n,随后深入分析该漏洞的安全风险、相关技术原理、影响后果、受影响版本、检测方式以及修复与缓解方案。无论你是 IT 运维人员、安全研究员,还是 n8n 的使用者,本文都能帮助你理解并应对这一严重安全问题。
第一部分:n8n 简介
n8n 是一款采用 Fair-Code 许可 的工作流自动化工具,主要面向技术团队。它允许用户通过连接不同的应用与服务,在几乎无需编写大量代码的情况下构建复杂的自动化流程。
作为一个开源平台,n8n 支持 500+ 集成,可用于自动化 IT 运维、安全运营、软件开发、销售等多种场景。其核心功能包括:
- 拖拽式工作流构建界面
-
- 支持 AI 多步骤代理(Agents)
-
- 自定义 JavaScript / Python 节点
-
- 企业级功能:SSO、加密密钥、基于角色的访问控制(RBAC)
对于大型组织,n8n 支持通过 Docker 自建部署。其应用范围非常广泛,从 IT 运维中的员工入职自动化,到安全运营中工单增强处理。n8n 采用社区驱动模式,当前已提供 1700+ 工作流模板,可以高效地自动化重复性任务。
按回车或点击查看大图

n8n.io 上展示的工作流自动化功能
第二部分:什么是 CVE-2025–68613?漏洞原理解析
CVE-2025–68613 是一个 严重的远程代码执行(RCE)漏洞,源于 n8n 在 工作流表达式(Expression)求值机制 中存在的表达式注入问题。
该漏洞由安全研究员 fatihhcelik 以负责任方式发现并上报。漏洞允许 已登录的攻击者 在工作流定义中注入并执行任意代码。原因在于: n8n 在执行表达式时,运行环境隔离不足,攻击者可访问 Node.js 运行时的全局对象,如:
process-
child_process
漏洞被归类为 CWE-913(动态代码资源控制不当)。简而言之,平台未能正确限制动态代码执行的能力。
一个拥有合法账户的恶意用户,可以在如 Set 节点 中编写恶意表达式,从而执行系统命令,最终可能导致 n8n 服务器完全被接管。
该漏洞于 2025 年 12 月 19 日 由 n8n 官方通过 GitHub Security Advisory 公布。
第三部分:漏洞利用的技术细节
该漏洞源于 n8n 对用户定义表达式的执行方式。
n8n 使用如下语法来定义表达式:
={{ expression }}
表达式原本用于引用变量或执行简单计算。但在受影响版本中,这些表达式并未运行在真正隔离的沙箱中,导致 整个 Node.js 运行时环境对用户可见。
漏洞利用流程(完整步骤)
1. 认证要求
攻击者必须拥有一个有效的 n8n 账号(Web UI 或 API)。 无需管理员权限,只需具备创建或编辑工作流的权限。
2. 创建存在漏洞的工作流
- 登录 n8n Web 控制台
-
- 点击 Add workflow / Create new workflow 创建空白工作流
3. 添加必要节点
- 从左侧节点面板拖拽 Manual Trigger(手动触发) 节点
-
- 再拖拽一个 Set 节点
-
- 将 Manual Trigger 的输出连接到 Set 节点
4. 配置恶意表达式
- 双击 Set 节点进入配置
-
- 点击 Add Value → String
-
- 字段名任意(如
result)
- 字段名任意(如
-
- 点击值右侧的 “=” 按钮,启用 表达式模式
-
- 粘贴恶意表达式,例如:
按回车或点击查看大图

Payload 原文链接: pastebin.com/raw/11tecYq…
该 Payload 使用 child_process 模块,通过 this.process 访问 Node.js 内部对象,并执行 id 命令,返回当前系统用户与用户组信息。
5. 触发执行
- 点击 Execute Workflow 或 Set 节点中的 Test step
-
- n8n 在服务器端执行表达式
-
- 由于沙箱隔离不足,代码成功逃逸并以 n8n 进程权限执行(Docker 中通常为
node用户)
- 由于沙箱隔离不足,代码成功逃逸并以 n8n 进程权限执行(Docker 中通常为
6. 输出与验证
- 在 Set 节点输出中可看到命令执行结果,例如:
uid=1000(node) gid=1000(node) groups=1000(node)
- 更危险的 Payload 可执行任意系统命令(如
uname -a、whoami,甚至反弹 Shell)
按回车或点击查看大图

漏洞的根本原因在于 表达式求值器对全局 process 对象的访问控制不当。
修复版本通过更严格的运行时限制解决了该问题。
按回车或点击查看大图

n8n 中存在漏洞的工作流界面示例
第四部分:影响与风险评估
CVE-2025–68613 被评定为 Critical(严重)漏洞,CVSS 评分介于 9.9–10.0,意味着极易被利用,且后果极其严重。
一旦成功利用,攻击者可获得与 n8n 进程相同的权限,通常包括:
- 访问存储的凭据(API Key、Token)
-
- 读取/修改工作流配置文件
-
- 访问数据库、第三方 API
-
- 横向移动至内网其他系统
通过 Censys 等搜索引擎发现,全球暴露的 n8n 实例超过 103,000 个。 在生产环境中,该漏洞可能导致:
- 客户数据泄露
-
- 业务系统被篡改
-
- 服务中断
-
- 勒索软件攻击
n8n 社区论坛中已有真实案例表明:不及时修补将导致服务器被完全接管。
第五部分:受影响版本与补丁
受影响版本范围:
- 0.211.0 ≤ n8n < 1.120.4
-
- 1.121.0(存在漏洞)
-
- 1.121.1(已修复)
安全版本包括:
- 1.120.4
-
- 1.121.1
-
- 1.122.0 及以后版本
相关 GitHub 修复提交(如 08f332015153decdda3c37ad4fcb9f7ba13a7c79)对表达式执行器进行了隔离增强。
Docker 用户可直接升级:
docker pull n8nio/n8n:1.122.0
第六部分:漏洞检测与识别
检测方式
- 访问
/rest/settings接口 - 查看 JSON 中的
versionCli字段 -
- 使用社区工具(如 Nuclei 模板)扫描
-
- 解析登录页面的 meta 标签,例如:
<meta name="n8n:config:sentry" content="..." />
按回车或点击查看大图

第七部分:缓解与防护建议
立即措施
- 立刻升级到安全版本
临时缓解方案
- 限制工作流创建与编辑权限,仅允许可信用户
-
- 在最小权限、受限网络环境中运行 n8n
最佳实践
- 使用隔离部署(air-gapped)
-
- 加密敏感凭据
-
- 定期备份
-
- 关注官方安全公告(如比利时 CCB)