SELECT DISTINCT U.ID, U.USERNAME, U.EMAIL, U.REALM_ID FROM USER_ENTITY U
INNER JOIN USER_ATTRIBUTE UA ON U.ID = UA.USER_ID
WHERE UA.NAME IN ('password','password-confirm')
2023 年 9 月 12 日
要下載此版本,請前往 Keycloak 下載頁面。
Keycloak 22.0.2 版本中引入了一個安全漏洞。我們強烈建議不要升級到 22.0.2 版本,並且對於任何已在生產環境中部署 22.0.2 版本的人員,請立即升級到 22.0.3 版本。
對於 Keycloak 升級到 22.0.2 版本後自行註冊的使用者,其密碼並未安全儲存,並且可能會暴露給 Keycloak 的管理員。這只會影響在升級部署後註冊的使用者,不會影響任何先前註冊的使用者。
任何使用預覽宣告式使用者設定檔的 Realm 不會受到此問題的影響,只有使用預設使用者設定檔提供者的 Realm 會受到影響。
要識別您的部署中是否有任何受影響的使用者,您可以透過存取資料庫並執行以下 SQL 語句來查詢這些使用者
SELECT DISTINCT U.ID, U.USERNAME, U.EMAIL, U.REALM_ID FROM USER_ENTITY U
INNER JOIN USER_ATTRIBUTE UA ON U.ID = UA.USER_ID
WHERE UA.NAME IN ('password','password-confirm')
我們建議您聯繫任何受影響的使用者,並為他們新增更新密碼必要動作。
如果存在任何受影響的使用者,我們也建議您執行以下 SQL 語句從資料庫中刪除這些屬性
DELETE FROM USER_ATTRIBUTE UA WHERE UA.NAME IN ('password','password-confirm')
如果在 22.0.2 版本發布後有對資料庫進行任何備份,並且有受影響的使用者,我們建議您刪除這些備份。
任何具有自訂使用者儲存聯合提供者的部署也可能受到影響,請驗證您的自訂使用者儲存,以確定是否存在此問題。
如果使用者儲存提供者將屬性管理委派給 Keycloak,要識別您的部署中是否有任何受影響的聯合使用者,您可以透過存取資料庫並執行以下 SQL 語句來查詢這些使用者
SELECT DISTINCT USER_ID,REALM_ID,STORAGE_PROVIDER_ID FROM FED_USER_ATTRIBUTE
WHERE NAME IN ('password','password-confirm')
如果存在任何受影響的聯合使用者,我們也建議您執行以下 SQL 語句從資料庫中刪除這些屬性
DELETE FROM FED_USER_ATTRIBUTE UA WHERE UA.NAME IN ('password','password-confirm')
如果您的自訂使用者儲存提供者自行管理屬性,您應該查看您的自訂儲存,以移除 password
和 password-confirm
屬性。
在升級之前,請參考遷移指南,以取得完整的變更清單。