IPBUF安全漏洞报告
English
CVE-2026-42231 CVSS 8.8 高危

CVE-2026-42231 n8n 原型污染致远程代码执行漏洞

披露日期: 2026-05-04

漏洞信息

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

相关标签

远程代码执行原型污染n8nRCEXML注入

漏洞概述

n8n是一款开源工作流自动化平台。在1.123.32、2.17.4和2.18.1版本之前,其Webhook处理器使用的xml2js库存在缺陷,允许通过特制XML载荷引发原型污染。拥有工作流修改权限的认证用户可利用此漏洞,通过与Git节点SSH操作的组合,在n8n服务器上执行任意代码。

技术细节

该漏洞的根源在于n8n在处理Webhook请求时,集成了存在缺陷的xml2js库来解析XML数据。攻击者可以通过精心构造的XML Payload,利用__proto__或constructor.prototype等键名,成功污染JavaScript的核心对象原型。由于JavaScript的原型继承机制,这种污染会影响后续所有基于该原型的对象。在n8n的工作流中,Git节点用于处理SSH操作,其底层实现可能会引用对象属性来构建SSH命令。攻击者首先通过发送恶意XML请求完成原型污染,然后触发包含Git节点的工作流。此时,Git节点在执行过程中会读取被污染的原型属性(如特定的命令选项或参数),导致攻击者预设的恶意代码被服务器执行,从而获取系统控制权。

攻击链分析

STEP 1
步骤1:获取权限
攻击者获取n8n平台的合法认证账户,具备创建或修改工作流的权限。
STEP 2
步骤2:构造载荷
攻击者创建包含Webhook节点的工作流,并准备能够触发JavaScript原型污染的恶意XML Payload。
STEP 3
步骤3:触发漏洞
攻击者向Webhook端点发送恶意XML请求,导致xml2js库解析时污染JavaScript对象原型。
STEP 4
步骤4:利用链调用
攻击者配置工作流触发Git节点,利用其SSH操作功能读取被污染的原型属性。
STEP 5
步骤5:执行代码
Git节点在执行SSH命令时注入了被污染的恶意参数,最终在n8n主机上实现远程代码执行。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
POST /webhook/test HTTP/1.1 Host: target-n8n.com Content-Type: application/xml <?xml version="1.0" encoding="UTF-8"?> <root> <__proto__> <exec>touch /tmp/pwned</exec> </__proto__> </root> // This XML payload attempts to pollute the Object.prototype with an 'exec' property. // When chained with a Git node operation, this property might be referenced to execute system commands.

影响范围

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

防御指南

临时缓解措施
如果无法立即升级,请严格审查并限制拥有工作流编辑权限的用户账户。同时,监控系统中Git节点的异常调用行为,并暂时禁用不可信来源的Webhook触发功能,直到完成补丁更新。

参考链接

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