CVE-2026-33749n8n是一个开源工作流自动化平台。在1.123.27、2.13.3和2.14.1版本之前,存在一个严重的安全漏洞。拥有创建或修改工作流权限的经过身份验证的用户,可以精心制作一个产生无文件名HTML二进制数据对象的工作流。`/rest/binary-data`端点在没有`Content-Disposition`或`Content-Security-Policy`头的情况下内联提供此类响应,导致HTML在浏览器中原样渲染,并获得完整的同源JavaScript访问权限。攻击者可以将生成的URL发送给权限更高的用户,从而在受害者的经过身份验证的会话中执行JavaScript,进而窃取工作流和凭据、修改工作流或提权至管理员。
该漏洞的根本原因在于n8n处理二进制数据对象时缺乏必要的安全响应头。攻击者利用其创建工作流的权限,构建一个特殊的节点(如Code节点),使其输出一个包含恶意HTML/JavaScript代码的二进制数据流,并特意不设置文件名。当n8n通过`/rest/binary-data`接口提供该数据时,由于缺少`Content-Disposition: attachment`头,浏览器不会强制下载文件,而是尝试渲染内容。同时,由于缺少Content-Security-Policy (CSP) 头,浏览器不会限制内联脚本的执行。这导致了存储型XSS攻击。因为脚本在n8n的同源下运行,它可以访问受害者的会话Cookie、本地存储数据以及页面DOM,从而允许攻击者窃取凭证、篡改工作流或执行管理员操作。