发现关键的安全漏洞

2021年12月23日,作者:Stian Thorgersen

在 Keycloak 12.0.0 及之前版本(包括 15.1.1)中发现了一个漏洞 (CVE-2021-4133),该漏洞允许攻击者使用任何现有用户帐户通过管理 REST API 创建新的默认用户帐户,即使禁用了新用户注册。

在大多数情况下,新创建的用户等同于自注册用户,并且无法接收任何其他角色或组。但是,有一些难以重现的向量可能会导致额外的权限。

我们强烈建议所有人尽快升级到 Keycloak 15.1.1 或 16.1.0。Keycloak 16.0.0 也包含此修复程序,但如果您还没有运行此版本,我们建议直接升级到 16.1.0。

如果您无法升级,我们建议您通过阻止对用户创建 REST 终结点的访问来缓解此问题。

这可以通过以下 CLI 命令实现

bin/jboss-cli.sh --connect
/subsystem=undertow/configuration=filter/expression-filter=keycloakPathOverrideUsersCreateEndpoint:add( \
  expression="(regex('^/auth/admin/realms/(.*)/users$') and method(POST))-> response-code(400)" \
)
/subsystem=undertow/server=default-server/host=default-host/filter-ref=keycloakPathOverrideUsersCreateEndpoint:add()

这将阻止创建新用户的有效和无效尝试,包括来自 Keycloak 管理控制台的请求。

或者,可以使用防火墙阻止路径 /auth/admin/realms/.*/users 和方法 POST,或者完全阻止 /auth/admin

有关此漏洞的更多信息,请查看 CVE-2021-4133GHSA-83x4-9cwr-5487