漏洞总结:Flowise IDOR 漏洞 漏洞概述 标题:Flowise 用户、组织用户和工作区用户读取端点缺少授权检查,允许跨租户数据访问(IDOR)。 描述: Flowise 的以下 GET 端点缺乏授权检查,任何已认证用户(无论角色或组织成员身份)均可读取任意用户资料、枚举组织成员关系,并映射整个 Flowise 实例中的工作区结构: 技术细节: Flowise 对写操作(POST, PUT, DELETE)实施了基于角色的访问控制(RBAC),但对应的 GET 读取路由未注册任何权限中间件。控制器接受任意用户控制的查询参数,并直接传递给数据库查询,未进行所有权验证。 影响范围 受影响产品:Flowise (npm package) 受影响版本:<= 3.0.12 严重程度:Medium (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N) 影响: - 用户枚举:通过遍历邮箱地址或 UUID 发现注册用户,暴露内部元数据。 - 跨租户信息泄露:在多租户部署中,组织 A 的用户可读取组织 B 的用户资料及成员数据。 - 攻击链扩展:泄露的 ID 为针对特定用户或团队的特权升级和其他攻击提供了基础。 修复方案 当前状态:None(未修复) 建议:在读取路由中添加权限检查中间件,验证请求者是否有权访问目标资源。 POC 代码 前置条件:运行中的 Flowise 实例及注册账号。 Step 1 — Start Flowise: Step 2 — Authenticate (get JWT cookie): Step 3 — IDOR: Read any user profile by email: Step 4 — IDOR: Enumerate organization membership using the returned user ID: Step 5 — IDOR: Enumerate all members of an organization using the returned org ID: Step 6 — IDOR: Enumerate workspace membership: