事件经过
当允许的langchain和mammoth模块可达且ALLOW_BUILTIN_DEP启用时,Flowise的自定义函数执行沙箱可以被逃逸,允许经认证用户在服务器上运行OS命令。
影响分析
Flowise用于构建和托管LLM/代理应用,通常由非管理员构建者使用。沙箱逃逸导致OS命令执行,意味着低权限工作流作者可以攻破运行代理应用及其所使用凭证的主机。
攻击途径
一个经认证用户通过/api/v1/node-custom-function提交JavaScript,滥用允许的模块(langchain/mammoth)逃逸沙箱;提交的脚本将文件写入mammoth包路径,使OS命令执行成为可能。
受影响系统
Flowise至3.1.4,当ALLOW_BUILTIN_DEP=true且langchain和mammoth模块被允许时。
缓解措施
升级到修复沙箱逃逸的Flowise版本;不要在租户实例上启用ALLOW_BUILTIN_DEP,并限制允许的模块。