【复现】n8n表达式注入可导致远程代码执行漏洞(CVE-2025-68613)

admin 2026-01-14 23:51:37 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文复现了n8n平台CVE-2025-68613远程代码执行漏洞。该漏洞因表达式评估沙箱隔离不足,允许认证用户注入恶意代码执行系统命令,造成实例完全控制。漏洞CVSS评分9.9,影响广泛。建议立即升级至v1.122.0以上版本,并严格限制用户权限以加强防护。 综合评分: 91 文章分类: 漏洞分析,漏洞POC,漏洞预警,应用安全,解决方案


cover_image

【复现】n8n表达式注入可导致远程代码执行漏洞(CVE-2025-68613)

启明星辰

ADLab

2026年1月13日 18:07 北京

更多安全资讯和分析文章请关注启明星辰ADLab微信公众号及官方网站(adlab.venustech.com.cn)

n8n是一个开源的工作流程自动化平台,旨在可视化连接应用程序和服务,实现任务自动化,并集成安全工具和SaaS平台。其基于Node.js构建,使用JavaScript作为平台内部结构和用户工作流程逻辑。

2025年12月20日n8n发布更新,修复了n8n中通过表达式注入导致远程代码执行漏洞(CVE-2025-68613),CVSS评分9.9分(严重)。问题出在工作流程中的表达式评估系统。在某些情况下,经过身份验证的用户输入的表达式可以在与底层运行时隔离不足的上下文中执行,这允许使用n8n进程的权限执行任意代码。实际上,成功利用可能导致:

  • 完全控制实例
  • 访问秘密(令牌、凭据、API 密钥)
  • 持久修改工作流程
  • 在系统级别执行命令
  • 将 n8n 用作网络中的枢纽点

根据攻击面管理平台Censys的数据,截至2025年12月22日,互联网上存在103,476个潜在的易受攻击n8n实例。由于概念验证漏洞利用程序已经发布,并且该漏洞已在互联网上广泛传播,影响范围较大,提醒相关用户做好升级防护工作。

  • 漏洞描述

在n8n的工作流表达式评估系统中,该系统在工作流配置中由认证用户提供的表达式在不安全的执行环境中被评估。核心安全漏洞是一个表达式注入漏洞,使经过认证的攻击者能够以n8n进程的权限执行任意JavaScript代码。具体来说:

  • n8n处理用双大括号{{ }}包裹的用户输入,作为JavaScript代码,且没有足够的沙盒或输入验证。
  • 表达式求值器缺乏适当的上下文隔离,使攻击者能够逃离预期的评估沙盒。
  • 认证对该漏洞没有实质性的保护,任何经过认证的用户都可以利用它。

n8n官方描述为:n8n contains a critical Remote Code Execution (RCE) vulnerability in its workflow expression evaluation system. Under certain conditions, expressions supplied by authenticated users during workflow configuration may be evaluated in an execution context that is not sufficiently isolated from the underlying runtime.An authenticated attacker could abuse this behavior to execute arbitrary code with the privileges of the n8n process. Successful exploitation may lead to full compromise of the affected instance, including unauthorized access to sensitive data, modification of workflows, and execution of system-level operations.

  • 影响范围

  • 0.211.0 <= n8n < 1.120.4

  • n8n  1.121.0

  • ## 漏洞原理

该版本代码中存在多处安全问题:

(1)漏洞根源expression.ts文件中的resolveSimpleParameterValue函数中存在的安全问题如下:

  • 代码将process对象暴露给了表达式求值的data上下文。
  • 虽然只暴露了部分属性,但这个data.process引用的是实际的 Node.js process 对象。
  • 攻击者可以通过this.process.mainModule.require()绕过沙箱限制访问完整的 process 对象。

(2)表达式求值入口expression-evaluator-proxy.ts文件中存在的安全问题如下:

  • 使用Tournament库作为沙箱环境。
  • 只有after阶段的PrototypeSanitizer和DollarSignValidator过滤器。
  • 没有有效阻止通过this关键字访问执行上下文。

(3)沙箱初始化的expression.ts文件中的initializeGlobalContext函数中存在的安全问题如下:

  • 只阻止了直接调用eval、Function等。
  • 没有阻止通过process.mainModule.require()访问Node.js模块。
  • 沙箱隔离不足,无法防止深层对象访问。

  • ## 漏洞复现

可以看见命令执行的结果在右边。漏洞触发后,执行了系统命令,获取到了id的值。

  • ## 安全建议

立即升级

  • n8n官方已发布修复版本n8n v1.122.0,强烈建议用户升级到1.122.0或更高版本。

临时缓解措施:

  • 限制工作流创建和编辑权限仅限于完全信任的用户。
  • 将n8n部署在具有受限操作系统权限和网络访问权限的强化环境中,以减少潜在漏洞利用的影响。

参考链接:

[1]https://github.com/n8n-io/n8n/security/advisories/GHSA-v98v-ff95-f3cp

启明星辰积极防御实验室(ADLab)

ADLab成立于1999年,是中国安全行业最早成立的攻防技术研究实验室之一,微软MAPP计划核心成员,“黑雀攻击”概念首推者。截至目前,ADLab已通过 CNVD/CNNVD/NVDB/CVE累计发布安全漏洞7000余个,持续保持国际网络安全领域一流水准。实验室研究方向涵盖基础安全研究、运营商基础网络设施安全研究、移动终端安全研究、云安全研究、信创安全研究、物联网安全研究、车联网安全研究、工控安全研究、无线安全研究、数据安全研究、AI安全研究、低空安全研究、高级威胁研究、攻防体系建设。研究成果应用于产品核心技术研究、国家重点科技项目攻关、专业安全服务等。


免责声明:

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

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

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

本文转载自:ADLab 启明星辰《【复现】n8n表达式注入可导致远程代码执行漏洞(CVE-2025-68613)》

评论:0   参与:  0