漏洞概述 标题: Credential decryption (IDOR) in POST /api/data-sources/decrypt - authenticated user can decrypt data-source secrets 描述: 该漏洞允许任何经过身份验证的用户通过提供其他组织的 来解密数据源的秘密。这是一个跨租户的机密性泄露问题。 影响范围 受影响版本: <= 3.20.169-its 修复版本: 3.20.178 严重程度: 6.8 / 10 CVSS v3 基础指标: - 攻击向量: 相邻 - 攻击复杂度: 低 - 所需权限: 低 - 用户交互: 无 - 范围: 改变 - 机密性: 高 - 完整性: 无 - 可用性: 无 修复方案 1. 添加一个等同于 的组织范围守卫,并在请求中绑定调用者的 。 2. 使 组织感知:要求一个 参数并在 子句中验证( )或通过 链进行验证。 3. 在 实体中添加 列,并建立与 实体的关系,以确保数据层强制执行组织授权。 4. 回归测试:确保来自组织 A 的用户在解密属于组织 B 的 时收到 403 错误。 概念验证 (POC) 根因 1. 端点缺少其兄弟端点所具有的组织范围守卫。 2. 请求体被逐字消耗,每个带有 的条目都被解密。 3. 查找没有组织过滤器, 实体没有 列。 影响 任何经过身份验证的 ToolJet 用户——包括最低权限的 end-user,且没有受害者组织的成员资格——都可以恢复任何其他组织的数据源凭据(数据库密码、第三方 API 密钥、OAuth 秘密等),通过获取/遍历 值。这破坏了租户隔离,并提供了破坏受害者组织连接的数据存储的立足点。在共享/多租户实例上,这是一个关键的机密性失败。