Keycloakの脆弱性、権限制限された管理者にユーザーの個人情報が露出

Keycloakに存在するアクセス制御の不備により、権限のない管理者アカウントがユーザーの個人情報にアクセスできる可能性があることが分かりました。この問題はCVE-2026-17059として追跡されており、Keycloak Admin REST APIに影響します。発見したのはEscape ResearchのEnzo Mongin氏(別名Orionexe氏)です。

脆弱性評価サービス

この脆弱性は2026年7月18日にKeycloakチームへ報告され、同日中に受理されました。Red HatによってCVEが割り当てられたのは2026年7月24日です。Keycloakは2026年7月28日にこの不具合を修正し、バージョン26.7.0で対応が完了しています。

CVE-2026-17059のCVSS 3.1スコアは6.5で、深刻度は「中(Medium)」と評価されています。分類上はオブジェクトレベル認可の不備(CWE-639)に該当します。

Keycloakの脆弱性の内容

この脆弱性は、あるロールに割り当てられたメンバーを一覧表示するために使われる次のエンドポイントに存在します。

GET /admin/realms/{realm}/roles/{role-name}/users

Keycloakの標準的なユーザー一覧エンドポイントは、ユーザーレコードを返す前にユーザーごとの認可チェックを行います。query-usersとview-realmの権限のみを割り当てられ、より強力なview-users権限を持たない権限制限された管理者がメインのユーザーAPIを呼び出した場合、空のレスポンスが返される仕組みです。

しかしEscape Researchの調査により、ロールメンバー用のエンドポイントには同様の可視性フィルターが適用されていないことが判明しました。問題となったRoleContainerResource.getUsersInRoleメソッドは、リクエスト元がそのロールを閲覧でき、かつユーザークエリを発行できるかどうかのみを検証し、そのままロールに所属する全メンバーのユーザー表現を直接返していたのです。

その結果、本来Keycloakがユーザーディレクトリを閲覧できないとして扱うはずの権限制限アカウントが、ロールメンバーシップのクエリを通じてユーザーレコードを取得できてしまう状態でした。

露出する可能性がある情報は以下の通りです。

  • ユーザー名
  • メールアドレス
  • 名・姓
  • アカウントの有効/無効ステータス
  • メールアドレスの認証ステータス

マルチチームまたはマルチテナント構成のKeycloak環境では、この不具合によってヘルプデスクやサポート担当の管理者が、本来意図された隔離境界を回避し、他チームに属するユーザーの個人データを列挙できてしまう恐れがあります。

Image

この問題は、adminPermissionsEnabledがfalseに設定されている、Keycloakのデフォルトの管理権限モデルを使用するレルムに影響します。必要となる権限であるquery-usersとview-realmは、サポート業務や検索機能のために意図的に制限された管理設定として、しばしば利用されているものです。

細粒度管理権限バージョン2を使用しているレルムは影響を受けません。こうした環境では、Keycloakがロールメンバーのクエリを基盤となるストレージ層でフィルタリングするため、ユーザーデータへの不正アクセスが防止されています。

データ管理

Escape Researchは検証を行い、この脆弱性がKeycloakプロジェクトのmainブランチのコミット33695405eaに基づく999.0.0-SNAPSHOTビルドで再現することを確認しました。

修正では、ユーザーレコードがAPI表現に変換される前の段階で、ロールメンバー取得の処理フローにユーザーごとのcanView認可チェックが追加されました。これにより、ロールメンバー用エンドポイントにも、メインのユーザー一覧エンドポイントに既に実装されていた保護と同等の対策が適用されることになります。

管理者はKeycloak 26.7.026.7.026.7.0以降へアップグレードすることが推奨されます。また各組織は、委任された管理ロールを見直し、query-usersおよびview-realm権限を付与されているアカウントを特定した上で、パッチ適用前にロールメンバーAPIへのアクセスを通じてユーザー情報が露出していなかったかどうかを評価する必要があります。

警告: 20以上の政府系サイトが企業や市民にマルウェアを配布していました。 攻撃に関する詳細な調査結果を見る ことで、自組織の露出状況を確認できます

翻訳元: https://gbhackers.com/keycloak-flaw-exposes-users-personal-data/

ソース: gbhackers.com