CVE-2025-14777CVE-2025-14777是Keycloak中的一个中等严重性安全漏洞,CVSS评分6.0。该漏洞属于IDOR(Insecure Direct Object Reference,失效的直接对象引用)类型,位于Keycloak的Admin API授权资源管理端点中。具体受影响的服务包括ResourceSetService和PermissionTicketService。漏洞的根本原因在于系统对授权的检查与实际数据库操作之间存在不匹配:系统使用API请求中的resourceServer(客户端)ID进行授权验证,但后端数据库的查找和修改操作(如findById、delete)仅使用resourceId。这种设计缺陷使得经过身份验证且拥有细粒度管理权限的攻击者能够跨越客户端边界,对同一realm内的其他客户端资源进行删除或更新操作。虽然该漏洞需要认证才能利用,但仍可能导致严重的跨租户数据泄露和完整性破坏问题。
该IDOR漏洞的技术原理在于Keycloak Admin API的授权检查机制与数据库操作逻辑存在不一致性。在ResourceSetService和PermissionTicketService中,当处理API请求时,系统首先会验证请求者是否有权访问指定的resourceServer(客户端)。然而,当执行实际的数据库操作(如通过findById查询资源或执行delete操作删除资源)时,代码仅使用resourceId作为唯一标识符进行查询和修改,完全忽略了resourceServer的归属关系。具体来说:1) 攻击者A拥有对Client A的细粒度管理员权限;2) 攻击者通过API获取Client B中某个资源的有效resourceId;3) 攻击者使用Client A的resourceServerId配合Client B的resourceId发起请求;4) 系统授权检查通过(因为resourceServerId属于攻击者有权限的Client A),但数据库操作却作用于resourceId对应的资源(可能属于Client B)。这种漏洞允许攻击者实现跨客户端的未授权操作,包括删除或修改其他客户端的授权资源,从而破坏多租户环境中的隔离机制。