CVE-2025-65111CVE-2025-65111是Authzed SpiceDB中的一个中危安全漏洞,CVSS评分5.3。该漏洞存在于SpiceDB的LookupResources API中,当schema定义包含特定结构的权限时,系统可能返回不完整的权限检查结果。具体来说,当一个permission使用union(+)定义,并且该union在两侧引用相同的relation,但其中一侧通过箭头(→)指向不同的permission时,LookupResources可能遗漏某些应该返回的资源结果。这个问题仅影响LookupResources API的行为,而其他权限检查API(如CheckPermission)能够正确计算权限关系。攻击者无需认证即可利用此漏洞,在网络可达的情况下可能导致未授权访问被错误授予或拒绝。SpiceDB是一个开源数据库系统,广泛用于构建零信任访问控制和基于角色的权限管理,该漏洞可能影响依赖其进行安全关键应用权限管理的系统。
SpiceDB权限检查逻辑缺陷的技术分析:当SpiceDB处理包含复杂relation引用的schema时,特别是涉及union操作符(+)的场景,系统在解析和计算LookupResources时存在解析错误。具体问题场景为:假设schema中定义了relation A和permission P,其中permission P = relation_A + relation_A→permission_B。这种结构会导致SpiceDB的权限遍历算法在处理箭头引用的第二层权限时出现边界条件错误。LookupResources在执行递归遍历时,可能在处理union的右侧分支时跳过某些有效的资源路径,而只返回部分匹配结果。漏洞的根本原因在于权限图的遍历逻辑没有正确处理union操作符两侧相同的relation但具有不同箭头路径的情况。这使得攻击者可能通过构造特定的资源查询,绕过预期的权限检查,获取本不应该访问的资源列表。攻击者需要了解目标系统的schema结构,并构造相应的API请求来触发该缺陷。修复版本1.47.1改进了权限图的遍历算法,确保在所有分支上正确执行资源查找。