漏洞概述 该漏洞涉及在 函数中关闭 IDOR(不安全的直接对象引用)问题。具体表现为: 1. UUID 分支:调用 时没有所有权检查,导致当提供 UUID 时, 被完全忽略。 2. endpoint_name 分支:仅在 为真时应用用户 ID 过滤器。FastAPI 的 将 作为查询参数解析,但没有实际调用者设置,因此过滤器在每个路由上被静默跳过。 影响范围 漏洞路径:通过 POST 并使用受害者的 Flow UUID 在 字段中执行受害者的 Flow 并返回输出。 影响:攻击者可以利用此漏洞访问其他用户的 Flow,导致数据泄露和潜在的安全问题。 修复方案 1. 修复 UUID 分支:在 调用中添加所有权检查,确保 被正确验证。 2. 修复 endpoint_name 分支:在 函数中,无论 是否为真,都应用用户 ID 过滤器。 3. 规范化 user_id:在 helper 层顶部规范化 ,并在两个分支中强制执行。 4. 添加测试:新增单元测试和集成测试,确保修复后的代码能够正确处理相同用户 UUID、跨用户 UUID、缺失 Flow、endpoint_name 和无效 user_id 的情况。 POC 代码 修复后的代码片段 测试用例 总结 该漏洞通过修复 函数中的所有权检查和用户 ID 过滤器,确保了用户只能访问自己拥有的 Flow,从而防止了 IDOR 攻击。新增的测试用例进一步验证了修复的有效性。