
CVE-2025-68613 是一个影响 n8n 自动化平台的高危远程代码执行(RCE)漏洞。其根源在于平台的表达式执行引擎在处理用户输入的 JavaScript 表达式时存在缺陷,攻击者能够通过表达式注入实现 JavaScript 沙箱逃逸,进而获取 Node.js 运行时对象并执行任意系统命令。
本文将从漏洞根因、具体利用链、官方补丁机制以及安全实践建议四个方面,对这一典型的安全问题进行深入的技术拆解。
一、漏洞概述与威胁态势

漏洞类型
CVE-2025-68613 属于典型的远程代码执行漏洞(RCE)。
攻击链结构
Expression Injection
↓
JavaScript Sandbox Escape
↓
Node.js Runtime Access
↓
System Command Execution
典型攻击场景
攻击者通过向 workflow 配置中的表达式字段注入恶意代码来触发漏洞,例如:={{ malicious_expression }}。该表达式会在 n8n 服务端被当作 JavaScript 代码执行,从而绕过安全边界。
常见的易受攻击环境包括:
- 互联网暴露的 n8n 服务(默认端口 5678)
- 多租户自动化平台
- 允许低权限用户编辑 workflow 的部署模式
在野利用情况
2025年12月,美国网络安全和基础设施安全局(CISA)已将 CVE-2025-68613 纳入其“已知被利用漏洞”(KEV)目录。这表明:
- 该漏洞已存在真实世界的攻击活动。
- 攻击代码已在实际环境中被使用。
一旦攻击成功,攻击者能够实现以下目标:
- 执行任意系统命令
- 读取服务器环境变量
- 窃取 API 密钥等敏感凭据
- 建立反向 shell
- 进行内网横向移动
二、表达式执行机制与攻击入口
n8n workflow 内置了一套强大的表达式系统,允许用户在节点中动态处理数据。
常见表达式示例
{{$json["username"]}}
{{$env.SECRET}}
{{$now}}
这些表达式并非简单的变量替换,而是在 n8n 服务器端执行的 JavaScript 代码。其内部执行逻辑可以简化为类似下面的函数:
function evaluateExpression(expr, context) {
const fn = new Function("ctx", `
with (ctx) {
return ${expr};
}
`);
return fn(context);
}
这里存在一个关键的安全问题:new Function() 与 eval() 功能相似,用户输入的表达式内容会被直接拼接到函数体字符串中并执行。
表达式的运行上下文(ctx)通常包含:
$json(当前 workflow 的数据)
$env(环境变量)
$now(时间对象)
- 各种内置的 helper 方法
因此,n8n 的表达式系统本质上是一个服务器端的 JavaScript 执行环境。如果这个环境的沙箱隔离不彻底,攻击者就有机会访问到外部的 Node.js 运行时对象,从而打开 RCE 的大门。
三、沙箱逃逸与 RCE 利用链
该漏洞的利用核心依赖于 JavaScript 的原型链机制。
关键利用点
通过一个简单的 JavaScript 表达式,攻击者可以获取到全局的 Function 构造函数:
({}).constructor.constructor
解析:
{} → 创建一个空对象(Object 实例)
({}).constructor → 获取该对象的构造函数,即 Object 函数本身
Object.constructor → 获取 Object 函数的构造函数,即顶层的 Function 构造函数
拥有了 Function 构造函数,就等于获得了执行任意 JavaScript 代码的能力。
获取 Node.js 运行时对象
攻击者可以构造 Function 来返回 Node.js 的全局 process 对象:
({}).constructor.constructor("return process")()
返回结果:
process
加载 Node.js 原生模块并执行命令
拿到 process 对象后,就可以通过它来加载任何 Node.js 原生模块,例如 child_process:
process.mainModule.require("child_process")
将以上步骤串联起来,就构成了完整的 RCE 利用链:
({}).constructor.constructor("return process")()
.mainModule.require("child_process")
.execSync("whoami")
.toString()
这段表达式的执行结果就是服务器上 whoami 命令的输出。
攻击链完整流程
用户登录
↓
创建或编辑 workflow
↓
在 Set 等节点的表达式字段注入恶意 Payload
↓
触发 workflow 执行
↓
表达式引擎解析并执行 Payload
↓
JavaScript 沙箱逃逸,访问 Node.js 运行时
↓
实现远程代码执行(RCE)

成功利用后,攻击者可以执行 child_process.execSync、fs.readFile、读取 process.env 等操作,从而全面控制服务器、窃取敏感数据。
四、补丁机制与安全修复分析
2025年11月,n8n 项目在 GitHub 上提交了针对此漏洞的安全补丁(关键提交:08f3320)。该补丁主要从以下三个方面增强了表达式沙箱的安全性。
1. 新增 FunctionThisSanitizer
- 文件:
packages/workflow/src/expression-sandboxing.ts
- 作用:这是一个新增的 AST(抽象语法树) Hook,用于阻止函数表达式(FunctionExpression)中的
this 关键字绑定到 Node.js 的全局对象(global)。
修复原理示例:
原始攻击代码可能试图这样获取 process:
( function () {
return this.process;
})()
补丁会通过 AST 重写,将其转换为:
( function () {
return this.process;
}).call({ process: {} })
通过 .call({ process: {} }) 显式地将函数内部的 this 绑定为一个只包含空 process 对象的上下文。这样,即使代码执行,this.process 指向的也是一个空对象 {},而非真实的 Node.js process 对象,从而阻断了利用路径。
2. 原型链访问限制
补丁引入了一个危险属性黑名单,用于拦截对关键原型链属性的访问:
const unsafeObjectProperties = new Set([
"__proto__",
"prototype",
"constructor",
"getPrototypeOf",
"mainModule",
"binding",
"_load",
]);
这个名单精准包含了此前攻击链中依赖的关键属性,例如 constructor 和 mainModule。当表达式试图访问对象上的这些属性时,沙箱会进行拦截,有效封堵了逃逸通道。
3. 表达式 AST 安全处理流程加固
n8n 使用自研的 @n8n/tournament 库对表达式进行 AST 解析和安全处理。补丁强化了该流程:
JS Expression
↓
AST Parse (解析为抽象语法树)
↓
AST Sanitization (安全清理)
↓
Expression Execute (安全执行)
在 AST Sanitization 阶段,补丁设置了多层 Hook 进行防护:
- before (执行前):
FunctionThisSanitizer(处理 this 绑定)
- after (执行后):
PrototypeSanitizer(过滤原型链危险属性)
DollarSignValidator(验证 $ 前缀变量)
通过 AST 层的代码重写和属性访问过滤,极大地提升了沙箱的完整性和安全性。
五、总结与安全思考
CVE-2025-68613 是一个典型的 表达式注入导致沙箱逃逸 的远程代码执行漏洞。
漏洞的根本原因在于:系统将不可信的用户输入直接当作 JavaScript 代码执行,而为其提供的执行环境(沙箱)未能完全与主机运行时隔离。
这类设计问题常见于需要动态执行代码的场景,例如:
- 模板引擎
- 表达式计算系统
- 插件或扩展机制
- 低代码/自动化平台
如果隔离机制(沙箱)设计不完善或存在缺陷,这些功能点就容易成为攻击者实现 RCE 的入口。因此,在涉及代码动态执行的安全设计中,必须严格遵循以下原则:
- 原则一:尽可能避免直接执行用户代码。
- 原则二:如需支持,应使用功能受限的自定义表达式语言(DSL),而非完整的编程语言。
- 原则三:必须使用经过严格验证的沙箱技术进行运行时隔离。
- 原则四:遵循最小权限原则部署相关服务。
对于已经部署 n8n 的企业和安全团队,应立即检查版本并升级至已修复该漏洞的版本。由于该漏洞已被列入 CISA KEV 目录,表明其威胁迫在眉睫,应给予最高优先级的修复。同时,应持续监控自动化平台中的表达式执行行为,避免其成为攻击者穿透内网的跳板。
希望这篇对 CVE-2025-68613 的深度分析,能帮助你理解此类漏洞的原理与防御之道。安全是一个持续对抗的过程,保持学习与交流至关重要。欢迎在云栈社区的安全板块与更多同行探讨此类技术细节。