Keycloak の脆弱性 CVE-2026-17059 が FIX:Admin 境界の破綻とユーザー情報の露出

Keycloak Vulnerability Exposes User Names and Email Addresses Across Admin Boundaries

2026/07/31 CyberSecurityNews — Keycloak が対処した脆弱性は、制限付き管理者に対して、許可された範囲外のユーザーに属するユーザー名/メールアドレスなどの、プロファイル情報へのアクセスを許すものである。この脆弱性 CVE-2026-17059 は、Keycloak Admin REST API に影響を及ぼすものであり、アクセス制御の破綻を招く可能性がある。発見したのは、Orionexe として知られる Escape の研究者 Enzo Mongin である。

この脆弱性は、2026年7月24日に Red Hat により公開され、7月2日にリリースされた Keycloak バージョン 26.7.0 により修復された。

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

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

query-usersview-realm の権限だけを持つ制限付き管理者であっても、このエンドポイントを呼び出し、表示を許可されたロールのメンバーについて、完全なユーザー・レコードの取得が可能になる。露出する情報に含まれるのは、ユーザー名/メールアドレス/氏名/アカウント状態/メール検証状態などである。

Keycloak の脆弱性

Keycloak の主要なユーザーを一覧するエンドポイントが、正しく保護されていないことを、Escape が確認した。制限付き管理者が、標準のユーザー API にクエリを実行する場合に、そのアカウントには view-users 権限がないため、Keycloak は空のレスポンスを返す。

しかし、ロールメンバーのエンドポイントでは、同じユーザーに対する認可フィルタが適用されず、広範なロール表示権限とユーザー・クエリ権限だけが強制される。その結果、主要なユーザー・エンドポイントから空の一覧を返す同じトークンにより、ロールメンバー API を通じて個人データが取得できる。

これにより、共有 Keycloak realm にプライバシー・リスクが生じる。特に、ヘルプデスク形式のアカウントにより、ユーザー・ディレクトリ全体の閲覧が意図的に制限されている環境で問題が生じる。

Keycloak Flaw (Source: Escape Tech)
Keycloak Flaw (Source: Escape Tech)

この欠陥は、CWE-639 (broken object-level authorization/broken access control) として分類され、CVSS スコアは 6.5 であり、中深刻度と評価されている。

この脆弱性の悪用に際しては、認証済みでありながら意図的に制限された管理者アカウントが必要となる。そのため、この問題は、Keycloak の部分的な管理を、サポートチームや事業部門に委任している組織にとって問題となりやすい。

脆弱なコードパスは RoleContainerResource.getUsersInRole に存在する。このコードはロール・メンバーを取得し、呼び出し元が個々のユーザーを表示する認可を持つかどうかを確認せずに、それらをユーザーに対して変換してしまう。

今回の修正においては、ユーザー・レコードが返される前に、必要なユーザーごとの可視性検証が追加されている。fine-grained admin permissions version 2 を使用している realm は、データストア層でフィルタリングが行われるため、影響を受けない。この露出は、主に adminPermissionsEnabledfalse に設定されたデフォルトの権限モデルを使用するデプロイメントに影響する。

組織に推奨されるのは、Keycloak をバージョン 26.7.0 以降へアップグレードすることである。管理者にとって必要なことは、特に複数チーム環境において、query-usersview-realm のロールを割り当てられたアカウントを確認することである。

セキュリティ・チームに推奨されるのは、関連する API エンドポイントについて、一貫した認可動作をテストすることである。保護された主要ルートが存在していても、代替経路が同じアクセス制御を強制するとは限らないためである。