發現重大安全性漏洞

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