免责声明:本文所述技术细节与复现过程仅供安全研究与学习之用。任何个人或组织不得将其用于非法用途,否则需自行承担全部法律责任。
0x01 漏洞介绍

n8n 是一款开源的、可扩展的工作流自动化工具。在其 1.121.0 之前的版本中,存在一个输入验证错误漏洞(CVE-2026-21858)。攻击者能够通过提交特制数据到基于表单的工作流,访问服务器底层文件系统。通过读取到的密钥文件,攻击者可进一步伪造管理员 Cookie 身份信息,并最终借助执行命令节点获得服务器的控制权,实现未授权的远程代码执行(RCE)。
0x02 影响版本
受影响的具体版本为:
n8n < 1.121.0


0x03 漏洞复现
1. Docker 环境搭建
使用 Docker Compose 快速搭建一个存在漏洞的 n8n 测试环境。

构建并启动容器后,访问 http://<your-ip>:5678 即可看到 n8n 的登录界面。

2. 漏洞验证与利用
存在漏洞的测试表单访问地址通常为:
http://10.211.55.6:5678/form/vulnerable-form

我们可以使用公开的漏洞利用脚本(PoC)进行验证。例如,尝试读取服务器上的 /etc/passwd 文件来证明任意文件读取漏洞的存在,这也是后续完整攻击链的第一步。在进行此类渗透测试时,务必确保拥有合法的测试授权。
执行命令如下:
python3 exploit.py http://10.211.55.6:5678/form/vulnerable-form --read /etc/passwd

如图所示,脚本成功输出了目标服务器的 /etc/passwd 文件内容,证实了漏洞的可利用性。完整的利用链会进一步利用读取到的敏感信息(如 JWT 密钥)伪造会话,最终实现命令执行。
0x04 修复建议
官方已发布新版本修复此漏洞。最根本的解决方案是立即将 n8n 升级至 1.121.0 或更高版本。
安全无小事,及时更新和加固系统是防御此类漏洞的关键。希望本文的技术分析能帮助管理员和开发者更好地理解风险,并采取有效措施。
|