🟠 高危 | CVE-2026-65595 — n8n before 2.30.1 and 2.29.8 assigns all Public AP...
🟠 【深度分析】高危安全漏洞:CVE-2026-65595
CVSS 评分: 高危(8.9)🟠 状态: Analyzed 发布时间: 2026-07-22
🔍 技术细节速览
| 字段 | 值 |
|---|---|
| CVE ID | CVE-2026-65595 |
| CVSS 评分 | 8.9 🟠 |
| 严重程度 | 高危 |
| CVSS 向量 | CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:L/SA:L/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
| CWE 分类 | CWE-269 |
| 发布时间 | 2026-07-22 |
| 最后更新 | 2026-07-27 |
| 状态 | Analyzed |
| 数据来源 | disclosure@vulncheck.com |
CVSS 评分:8.9(高危)
CVSS 向量: CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:L/SA:L
漏洞概述
CVE-2026-65595 是 n8n 工作流自动化平台中一处严重的权限管理缺陷。当 Token Exchange(令牌交换)模块与 Public API 同时启用时,系统在签发 JSON Web Token(JWT)时会错误地为所有令牌分配完整的 Public API 作用域,而忽略了发起请求的用户的实际角色。攻击者如果是一个低权限用户,只要能够获取到一个由已配置的外部 JWT 颁发者签发的有效令牌,就可以利用该令牌绕过权限检查,调用仅限管理员才能操作的 Public API 接口,包括角色提升(需 Advanced Permissions 许可证)、创建用户、删除用户等。在特定条件下(未经验证的社区包安装功能开启),攻击者甚至可以实现远程代码执行(RCE)。
该漏洞影响 n8n 2.29.8 之前的 2.29.x 版本以及 2.30.1 之前的 2.30.x 版本,已发现被在野利用(根据 VulnCheck 披露)。
受影响组件与版本
| 组件 | 受影响版本范围 |
|---|---|
| n8n(开源工作流自动化平台) | < 2.30.1(含 2.29.x 系列中低于 2.29.8 的所有版本) |
说明: n8n 版本分支为 2.29.x 和 2.30.x,修复版本分别为 2.29.8 和 2.30.1。所有低于这两个修补版本的部署均存在此漏洞。
漏洞原理分析
技术成因
n8n 提供了 Token Exchange 模块,允许用户通过外部身份提供者(如 OAuth 2.0 授权服务器)签发的 JWT 来获取 n8n 内部的访问令牌。这一机制通常用于实现单点登录(SSO)或跨系统授权。
在底层实现中,Token Exchange 模块处理外部 JWT 时,会调用 Public API 的令牌生成逻辑。但代码存在缺陷:无论发起令牌交换请求的用户在 n8n 中拥有何种角色(如常规用户、只读用户等),系统都将其视为具有所有 Public API 作用域的“超级用户”来签发内部 JWT。换言之,系统未能根据当前请求上下文的实际权限约束令牌的作用域(Scope),而是直接分配了管理员级别的全部 API 权限。
攻击向量
从 CVSS 向量分析:
- AV:N(网络攻击):攻击者可通过网络远程触发漏洞,无需物理接触。
- AC:L(攻击复杂度低):利用过程不需要特殊技巧,只需构造合法的 JWT 请求。
- AT:P(攻击前提条件):攻击者需要拥有一个有效的外部 JWT,该 JWT 必须由 n8n 实例信任的颁发者签发。这可以通过多种方式获得,例如:
- 攻击者已注册为低权限用户,并获取了自身可用的外部 JWT(例如通过 SSO 登录获得的令牌)。
- 攻击者窃取了其他合法用户(即使权限较低)的外部 JWT。
- 攻击者利用其他漏洞(如信息泄露)获取了有效令牌。
- PR:L(低权限要求):攻击者可以以低权限用户身份进行攻击,无需管理员权限。
- UI:N(无需用户交互):攻击过程不依赖目标用户的操作。
攻击流程
- 攻击者获取一个有效的外部 JWT(例如通过自己注册的低权限账号从身份提供者处获得)。
- 攻击者向 n8n 的 Token Exchange 端点发起令牌交换请求,提交该外部 JWT。
- n8n 解析并验证该 JWT 后,本应返回一个仅包含当前用户实际权限的作用域受限的内部令牌,但由于漏洞,系统返回了一个包含所有 Public API 作用域的内部令牌。
- 攻击者使用该内部令牌调用管理员权限的 API 端点,如
/api/v1/users(创建/删除用户)或/api/v1/roles(提升角色)。 - 若
unverified Community Package installation功能开启,攻击者可通过创建管理员用户或利用其他 API 上传并安装恶意社区包,从而在服务器上执行任意代码。
影响评估
攻击难度
| 维度 | 评估 |
|---|---|
| 攻击复杂度 | 低 – 只需构造标准 HTTP 请求,利用现成的 JWT。 |
| 所需权限 | 低 – 拥有任意有效外部 JWT 的低权限用户即可。 |
| 前提条件 | 中 – 需要目标 n8n 实例启用了 Token Exchange 和 Public API,且至少有一个已配置的 JWT 颁发者。攻击者需获取一个对该颁发者有效的令牌。 |
| 用户交互 | 无 – 不需要受害者点击链接或执行操作。 |
潜在后果
- 机密性(VC:H):攻击者可读取所有工作流数据、凭证、数据库等敏感信息。
- 完整性(VI:H):可修改工作流、用户权限、系统配置。
- 可用性(VA:H):可删除用户或关键工作流,导致服务中断。
- 范围影响(SC:H):漏洞可能允许攻击者影响 n8n 实例所在的安全边界之外的其他系统(例如通过 RCE 横向移动)。
- 远程代码执行:在满足社区包安装条件下,攻击者可获得完全的主机控制权,导致数据泄露或作为跳板进一步攻击内网。
总体风险等级:高危。由于可利用性高且影响范围广,建议立即评估并修复。
修复建议
官方补丁
- 升级 n8n 至 2.30.1 或 2.29.8 及更高版本。这两个版本已修复 Token Exchange 模块中的作用域分配缺陷。
- 若使用 Docker 部署,请拉取最新镜像并重建容器。
临时缓解措施(无法立即升级时)
- 禁用 Token Exchange 模块:若业务不需要此功能,可通过环境变量或配置文件关闭。例如设置
N8N_TOKEN_EXCHANGE_ENABLED=false。 - 禁用 Public API:若无需对外暴露 API,可关闭 Public API 功能(
N8N_PUBLIC_API_ENABLED=false)。 - 限制 JWT 颁发者:在 n8n 配置中严格限定信任的外部 JWT 颁发者列表,并删除不必要的颁发者。
- 启用严格的社区包验证:关闭
unverified Community Package installation(N8N_COMMUNITY_PACKAGES_ALLOW_UNVERIFIED=false),或彻底禁止安装社区包。 - 网络隔离:将 n8n 实例置于防火墙后,限制对 Token Exchange 端点的外网访问。
监控与检测
- 审计 n8n 日志中异常的 API 调用,特别是涉及
/api/v1/users、/api/v1/roles等未授权的管理员操作。 - 检查是否有非预期的用户创建或权限提升事件。
参考资料
- NVD 官方页面:https://nvd.nist.gov/vuln/detail/CVE-2026-65595
- CWE-269:Improper Privilege Management(不当权限管理)https://cwe.mitre.org/data/definitions/269.html
- n8n 安全公告(待官方发布):通常会在 n8n GitHub Releases 中公布。
- VulnCheck 披露信息:disclosure@vulncheck.com(原始报告来源)
免责声明: 本文档基于 NVD 公开数据及行业通用分析技术编写,所有技术细节均源自现有信息。对于尚未公开的漏洞细节,文中未进行任何主观编造。读者应参考官方安全公告获取最准确的修复指导。