深入理解CVE-2025–68613:n8n工作流自动化工具中的高危远程代码执行漏洞

admin 2025-12-26 01:38:51 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: n8n自动化平台存在CVE-2025-68613高危RCE漏洞,源于表达式求值沙箱逃逸,允许已登录用户注入代码调用Node.js子进程执行系统命令,从而导致服务器被接管。影响版本为0.211.0至1.121.0,建议立即升级至1.120.4或1.121.1以上版本,并严格限制工作流编辑权限以修复风险。 综合评分: 91 文章分类: 漏洞分析,WEB安全,漏洞预警


cover_image

深入理解 CVE-2025–68613:n8n 工作流自动化工具中的高危远程代码执行漏洞

hai dragon

安全狗的自我修养

2025年12月25日 14:49 湖南

官网:http://securitytech.cc/

在撰写本文时(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 原文链接: https://pastebin.com/raw/11tecYqY

该 Payload 使用 child_process 模块,通过 this.process 访问 Node.js 内部对象,并执行 id 命令,返回当前系统用户与用户组信息。


5. 触发执行

  • 点击 Execute Workflow 或 Set 节点中的 Test step
  • n8n 在服务器端执行表达式
  • 由于沙箱隔离不足,代码成功逃逸并以 n8n 进程权限执行(Docker 中通常为 node 用户)

6. 输出与验证

  • 在 Set 节点输出中可看到命令执行结果,例如:
uid=1000(node) gid=1000(node) groups=1000(node)
  • 更危险的 Payload 可执行任意系统命令(如 uname -awhoami,甚至反弹 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)

  • 公众号:安全狗的自我修养
  • vx:2207344074
  • http://gitee.com/haidragon
  • http://github.com/haidragon
  • bilibili:haidragonx

#

#


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:安全狗的自我修养 hai dragon《深入理解 CVE-2025–68613:n8n 工作流自动化工具中的高危远程代码执行漏洞》

评论:0   参与:  0