IPBUF安全漏洞报告
English
CVE-2026-27496 CVSS 6.5 中危

CVE-2026-27496 n8n信息泄露漏洞

披露日期: 2026-03-25

漏洞信息

漏洞编号
CVE-2026-27496
漏洞类型
信息泄露
CVSS评分
6.5 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
n8n

相关标签

信息泄露n8n未初始化内存CVE-2026-27496

漏洞概述

n8n是一款开源工作流自动化平台。在特定版本之前,拥有工作流创建或修改权限的经过身份验证的用户,可以利用JavaScript Task Runner分配未初始化的内存缓冲区。这些缓冲区可能包含来自同一Node.js进程的剩余数据,包括先前请求、任务、密钥或令牌中的敏感数据,从而导致敏感进程信息泄露。

技术细节

该漏洞源于n8n在启用Task Runners功能时,JavaScript Task Runner处理内存分配的逻辑缺陷。攻击者需要拥有合法的账户以及工作流创建或修改权限。在受影响版本中,攻击者可以通过构造特定的JavaScript代码或工作流配置,利用Task Runner分配未初始化的内存缓冲区。由于Node.js内存管理机制,新分配的缓冲区可能未清空,从而保留了先前在同一进程空间内运行的其他请求、任务或操作留下的敏感数据(如API密钥、认证令牌等)。通过读取这些缓冲区内容,攻击者可以实现信息泄露。若使用外部运行器模式,泄露范围仅限于外部进程。

攻击链分析

STEP 1
1. 获取访问权限
攻击者需要获取n8n平台的合法账户凭证。
STEP 2
2. 验证权限
确认该账户拥有创建或修改工作流的权限,且目标环境启用了Task Runners(N8N_RUNNERS_ENABLED=true)。
STEP 3
3. 执行漏洞利用
攻击者编辑或创建工作流,在JavaScript Task Runner节点中编写代码,调用未初始化的内存缓冲区分配功能。
STEP 4
4. 数据泄露
读取并输出缓冲区内容,获取内存中残留的敏感信息(如API密钥、用户令牌等)。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// Conceptual PoC for CVE-2026-27496 // Prerequisites: Authenticated user, N8N_RUNNERS_ENABLED=true, Workflow Edit Permissions // In a JavaScript Task Runner node within n8n: function exploit() { // Allocate a buffer without initializing memory (unsafe) // This mimics the vulnerable behavior described const size = 1024; const leakedBuffer = Buffer.allocUnsafe(size); // Extract data from the uninitialized memory // This may contain secrets/tokens from previous requests in the process const data = leakedBuffer.toString('utf-8'); return { status: 'success', leaked_data: data }; } return exploit();

影响范围

n8n < 1.123.22
n8n < 2.9.3
n8n < 2.10.1

防御指南

临时缓解措施
如果无法立即升级,管理员应限制工作流创建和编辑权限仅授予完全受信任的用户,或启用外部运行器模式(设置环境变量 N8N_RUNNERS_MODE=external)以隔离运行器进程,降低泄露风险。

参考链接

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