🔴 【深度分析】严重安全漏洞:CVE-2026-44789

CVSS 评分: 严重(9.4)🔴  状态: Analyzed  发布时间: 2026-06-23


🔍 技术细节速览

字段 值
CVE ID CVE-2026-44789
CVSS 评分 9.4 🔴
严重程度 严重
CVSS 向量 CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X
CWE 分类 CWE-1321
发布时间 2026-06-23
状态 Analyzed

好的,作为一名资深网络安全分析师,我将基于您提供的 NVD 漏洞数据,对 CVE-2026-44789 进行深度分析。


漏洞概述

CVE-2026-44789 是一个存在于开源工作流自动化平台 n8n 中的高危漏洞。该漏洞允许拥有创建或修改工作流权限的认证用户,通过 HTTP 请求节点中一个未经充分验证的分页参数,实现全局原型污染(Prototype Pollution)。攻击者可以结合其他技术,利用此漏洞在 n8n 实例上实现远程代码执行(RCE)。该漏洞的 CVSS 4.0 评分为 9.4(严重),表明其影响范围广、利用难度低且危害极大。

受影响组件与版本

  • 受影响组件: n8n 开源工作流自动化平台
  • 受影响版本:
    • 1.x 系列:早于 1.123.43 的版本
    • 2.x 系列:早于 2.22.1 的版本
    • 2.x 系列:早于 2.20.7 的版本
  • 安全版本:
    • 1.123.43
    • 2.22.1
    • 2.20.7

漏洞原理分析

该漏洞的核心是 全局原型污染 (CWE-1321)。

  1. 攻击入口: 漏洞存在于 n8n 的 HTTP Request 节点 中。该节点允许用户在工作流中发起 HTTP 请求,并可以配置分页参数(例如 page, limit 等)来处理分页响应。
  2. 缺陷根源: 开发者在处理这些分页参数时,没有对用户输入进行充分的验证和清理。攻击者可以构造恶意的分页参数值,例如 __proto__ 或 constructor.prototype,并将其注入到 JavaScript 对象的原型链中。
  3. 原型污染过程: 当 n8n 后端处理这些恶意参数时,由于代码逻辑缺陷,会将攻击者控制的属性(如 isAdmin, shell 等)直接赋值给 Object.prototype。由于 JavaScript 中几乎所有对象都继承自 Object.prototype,这个污染会影响到整个应用程序的所有对象。
  4. 利用链: 原型污染本身通常不直接导致 RCE。但攻击者可以通过污染特定的属性来改变 n8n 内部对象的行为。例如:
    • 污染 Object.prototype 上的某个属性,使其在后续代码执行中被错误地当作可执行代码或命令。
    • 结合 n8n 的其他功能(如代码节点、表达式求值等),将污染后的属性值作为参数传递给 eval()、Function() 或 child_process.exec() 等危险函数,从而触发远程代码执行。

总结来说,攻击流程是: 认证用户 -> 创建/修改工作流 -> 在 HTTP Request 节点中注入恶意分页参数 -> 触发全局原型污染 -> 利用污染后的属性结合其他功能实现 RCE。

影响评估

  • 攻击向量 (AV:N): 网络攻击,攻击者可以通过网络远程利用此漏洞。
  • 攻击复杂度 (AC:L): 低,利用方法相对直接,无需复杂的条件。
  • 所需权限 (PR:L): 低,攻击者仅需一个低权限的认证账户(能够创建或修改工作流)。
  • 用户交互 (UI:N): 无需用户交互。
  • 影响范围 (Scope: Changed): 漏洞影响范围可能超出最初受影响的组件,导致整个 n8n 实例的安全边界被突破。
  • 机密性、完整性、可用性 (C/I/A: High): 成功利用此漏洞可实现远程代码执行,攻击者能够完全控制 n8n 实例,窃取敏感数据(如凭证、工作流数据)、篡改工作流逻辑、中断服务,甚至可能利用该实例作为跳板攻击内部网络。

综合评估: 这是一个严重级别的漏洞,对 n8n 平台的可用性、数据安全性和业务连续性构成直接且巨大的威胁。

修复建议

  1. 立即升级: 最直接有效的修复措施是将 n8n 实例升级到以下安全版本之一:
    • 1.123.43 或更高版本
    • 2.22.1 或更高版本
    • 2.20.7 或更高版本
  2. 临时缓解措施:
    • 如果无法立即升级,应严格限制能够创建或修改工作流的用户权限,仅授予绝对必要的用户。
    • 审查并监控所有工作流,特别是那些使用了 HTTP Request 节点并配置了分页参数的工作流,检查是否存在可疑的输入。
    • 考虑在网络层面部署 Web 应用防火墙(WAF),尝试拦截包含 __proto__、constructor 等原型污染关键字的请求。
  3. 安全加固:
    • 遵循最小权限原则,为 n8n 用户分配角色和权限。
    • 启用详细的审计日志,监控所有工作流的创建、修改和执行活动。
    • 定期对 n8n 实例进行安全扫描和渗透测试。

参考资料