CVE-2026-0976CVE-2026-0976是Keycloak中的一个输入验证漏洞,CVSS评分3.7,严重等级为低危。该漏洞源于Keycloak接受符合RFC标准的矩阵参数(Matrix Parameters)嵌入在URL路径段中,而大多数反向代理(如Nginx、Apache)的默认配置会忽略或错误处理这些矩阵参数。攻击者可以利用这一特性构造特殊的HTTP请求,通过在路径中插入矩阵参数来掩盖真实的路径信息,从而绕过代理层的访问控制和安全过滤规则。这可能导致原本被网络隔离或通过代理规则限制访问的管理端点、敏感接口被意外暴露,给系统带来潜在的安全风险。漏洞由Red Hat安全团队([email protected])发现并披露。
该漏洞的技术核心在于URL矩阵参数的解析差异。矩阵参数是RFC 3986中定义的一种URL语法,格式为path;param=value。Keycloak作为Java应用,正确实现了RFC标准,会解析并处理URL中的矩阵参数。然而,大多数反向代理服务器(如Nginx、Apache)在进行路径匹配、路由转发或访问控制时,默认不会解析矩阵参数,而是将其视为路径的一部分或直接忽略。攻击者可以利用这一差异构造请求,例如:/admin;matrix=hidden/console绕过仅配置/admin路径限制的代理规则,因为代理看到的路径为/admin;matrix=hidden/console(可能匹配或被错误处理),而Keycloak实际解析的路径为/admin。这种路径混淆攻击允许攻击者访问本应被代理层阻止的敏感端点,如管理后台、API接口等。攻击者还可以使用多个矩阵参数进一步混淆路径结构。