CVE-2026-9796Keycloak发现一处TOCTOU漏洞。拥有`manage-clients`角色的认证管理员可利用基于名称的角色检查竞态条件,将权限提升至`realm-admin`。攻击者借此获取域内所有用户的广泛控制权。该复合角色关系极具顽固性,即便攻击者原权限被撤销或系统重启,提权状态仍会持续存在,造成严重安全风险。
该漏洞源于Keycloak在处理管理员角色检查时存在Time-of-check to time-of-use (TOCTOU) 竞态条件。具体而言,系统在验证角色名称与实际执行授权操作之间的检查存在时间差。具备`manage-clients`权限的攻击者可利用此窗口,通过精心构造的并发HTTP请求(如多线程操作),在角色名称校验通过但尚未锁定资源的瞬间,修改或创建客户端及角色绑定,从而欺骗系统赋予其`realm-admin`特权。由于Keycloak对复合角色关系的持久化机制存在缺陷,一旦提升成功,即使攻击者原有的`manage-clients`权限被管理员移除,或系统发生重启,其非法获得的`realm-admin`权限仍然有效,导致难以清除的持久性威胁。这使得攻击者能够完全接管目标Realm,执行包括用户管理、客户端配置在内的所有敏感操作,严重破坏系统的身份认证与访问控制体系。