CVE-2026-9799CVE-2026-9799是Red Hat Keycloak授权模块(org.keycloak.authorization)中的一个访问控制绕过漏洞。该漏洞存在于Keycloak的用户管理访问(User-Managed Access, UMA)授权机制中,允许已认证用户利用特定权限请求前缀绕过针对单个资源的访问控制策略。具体而言,当攻击者持有某个资源的UMA授权票据(permission ticket)时,可以通过构造特殊的权限请求前缀,获取同一资源服务器下同类型所有资源的未授权访问权限,即使攻击者并未持有这些特定资源的授权票据。该漏洞的利用需要满足以下前提条件:资源服务器必须配置为PERMISSIVE策略执行模式;受影响的资源必须为类型化资源(typed resources)且启用了ownerManagedAccess属性;且资源类型未受到任何显式策略的保护。漏洞的主要后果为未授权的信息泄露以及资源数据的未授权修改。该漏洞由Red Hat安全团队([email protected])发现并报告,CVSS 3.1评分为4.6,属于中危级别。虽然该漏洞需要低权限认证和用户交互,但其影响范围广泛,可能导致敏感数据泄露和完整性破坏,对依赖Keycloak进行身份和访问管理的多租户系统构成显著威胁。
该漏洞的核心问题在于Keycloak授权服务在处理UMA权限票据请求时,未能正确验证权限请求的范围与资源类型的对应关系。在正常流程中,当用户通过UMA协议请求资源访问权限时,授权服务器应严格校验请求中指定的资源是否与用户持有的票据所授权的资源一致。然而,由于代码中对权限请求前缀(permission request prefix)的解析逻辑存在缺陷,攻击者可以通过在权限请求中附加特定的前缀字符串,使授权服务将请求匹配到更广泛的资源类型范围,而非仅限于票据所授权的单个资源。
具体利用方式如下:
1. 攻击者首先通过正常渠道获取某个特定资源的UMA授权票据;
2. 随后在发起权限请求时,在资源标识符前添加特定前缀;
3. Keycloak授权服务在解析该请求时,由于前缀匹配逻辑的缺陷,将请求范围扩展至同一资源服务器下同类型的所有资源;
4. 授权服务返回所有匹配资源的访问令牌,绕过了针对单个资源的访问控制策略。
此漏洞的触发条件包括:资源服务器采用PERMISSIVE策略执行模式(在该模式下,缺少显式策略的资源默认允许访问);资源类型启用了ownerManagedAccess属性;且资源类型未配置任何显式的保护策略。漏洞的影响范围包括机密性(低)和完整性(低),但可用性不受影响。