事件经过
n8n在之前的GHSA修复中将Code节点移至JS任务运行器子进程,但将Function/Function Item和LangChain Code节点留在主进程中通过vm2 NodeVM运行,仅从面板中隐藏它们。由于主进程缺乏任务运行器的沙箱标志,成员执行的示例代码会解析为n8n主PID并可访问主机:以n8n服务账户运行,读取加密凭证和数据库。
影响分析
n8n是团队连接LLM/代理自动化的主要场所(LangChain Code节点、凭证获取节点)。易受攻击的节点在持有所有实例凭证和机密的同一进程下运行,因此低权限工作流作者可以完全攻破实例——这正是AI编排部署中最重要的爆炸半径。
攻击途径
一个经认证的成员导入或创建一个工作流,其节点类型为已弃用的Function/Function Item/LangChain Code节点并执行它。这些节点仅从面板“隐藏”(UI标志,而非ACL),仍然通过n8n主进程中废弃的vm2 NodeVM运行其JavaScript,该进程未获得任务运行器加固标志(--disallow-code-generation-from-strings / --disable-proto=delete)。
受影响系统
n8n 2.42.6之前、2.43.x 2.43.3之前以及3.x 3.0.1之前。受影响的节点:n8n-nodes-base.function、n8n-nodes-base.functionItem、@n8n/n8n-nodes-langchain.code(CVSS 8.8)。
缓解措施
升级到n8n 2.42.6、2.43.3或3.0.1。不要依赖面板隐藏、NODES_EXCLUDE或工作流导入限制;审计实例中引用已弃用函数节点的已保存工作流。