CVE-2026-9087Keycloak在处理跨会话验证机制时存在安全漏洞。系统生成的验证证明仅依赖于本地用户ID和身份提供者别名作为键值,而未能有效绑定实际被验证的上游身份信息。这一缺陷使得同一身份提供者下的其他上游账户能够复用该验证证明,进而将受害者本地账户链接至攻击者控制的外部账户,导致严重的账户接管风险。
该漏洞的核心在于Keycloak在实现账户链接功能时的逻辑设计缺陷。当用户尝试将本地Keycloak账户与外部身份提供者账户关联时,系统需要验证用户对上游账户的所有权。然而,验证证明的生成机制仅使用了(local userId, idpAlias)作为唯一标识,缺失了对具体上游用户标识(如Subject ID)的严格绑定。攻击者若拥有同一IdP下的账户,即可通过捕获或利用竞态条件获取受害者的验证证明。在攻击阶段,攻击者利用同一IdP下的自身账户,提交受害者的验证证明。由于服务端仅校验userId和idpAlias的匹配性,而未校验证明对应的特定上游身份,系统会错误地接受该请求。结果导致攻击者的外部IdP账户被绑定到受害者的本地Keycloak账户上,攻击者随后可凭此直接登录受害者账户,造成权限绕过和数据泄露。