漏洞概述
Keycloak 服务器在处理刷新令牌(refresh token)时存在一个安全缺陷,具体位于负责执行刷新令牌重用策略的 TokenManager 类中。当启用严格的刷新令牌轮换机制时,对刷新令牌使用状态的验证与更新操作未以原子方式执行,导致并发请求可能绕过单次使用限制,从而从同一个刷新令牌生成多个访问令牌,削弱了 Keycloak 的刷新令牌安全机制。
漏洞详情
- CVE 编号:CVE-2026-1035
- 漏洞类型:时间检查到使用(Time-of-check to time-of-use, TOCTOU)条件竞争(CWE-367)
- CVSS 评分:3.1(LOW)
向量:CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N - 影响版本:受影响的 Keycloak 版本(具体版本需参考厂商公告)
影响范围
该漏洞影响启用了严格刷新令牌轮换(strict refresh token rotation)功能的 Keycloak 服务器实例。攻击者需具备有效的刷新令牌,并能发起并发请求以利用此竞争条件。
风险分析
虽然该漏洞的 CVSS 评分为低危,但成功利用可能导致刷新令牌被多次使用,违反单次使用策略,从而延长攻击者获取有效访问令牌的时间窗口,破坏 OAuth 2.0 安全模型中的令牌生命周期控制。不过,攻击需满足较高条件(如低权限账户、高并发请求),且不直接导致远程代码执行或信息泄露。
修复建议
- 建议用户关注 Red Hat 官方安全公告,及时升级至包含修复补丁的 Keycloak 版本。
- 在补丁发布前,可考虑暂时禁用严格刷新令牌轮换策略,或通过速率限制和监控异常并发令牌请求来缓解风险。
