# Keycloak 26.8.0

> Security · 2026-10-01

管理機能やデプロイ構成の変更に加え、認証・認可、SCIM、OIDC、OID4VCI、ストレージに関する多数のセキュリティ修正が含まれます。デフォルト設定の変更と非推奨化、削除された機能を確認する必要があるリリースです。

## 要対応
- **[security · medium]** `CVE-2026-12388` の修正
  - IdP mapperによる管理者ロールの昇格を修正しました。
- **[security · medium]** `CVE-2026-19608` の修正
  - 名前だけのグループクレームによって、パス指定のグループポリシーを同名グループが満たせてしまう問題を修正しました。
- **[security · medium]** Jackson Databindの更新
  - `com.fasterxml.jackson.core:jackson-databind` を 2.22.0 に更新しました。対象は `CVE-2026-54515` と `CVE-2026-59889` です。
- **[security · medium]** Netty HTTP codecの更新
  - `io.netty:netty-codec-http` を 4.1.136.Final に更新し、`CVE-2026-59903` に対応しました。
- **[security]** `secure-client-node-hostname` の追加
  - SSRF対策用のクライアントポリシーエグゼキューター `secure-client-node-hostname` が利用可能になりました。
- **[security]** SMTP認証情報置換の検証修正
  - SMTPのマスク済み認証情報置換で、宛先フィールドが変更されていないことを検証していなかった問題を修正しました。
- **[security]** refresh token再利用の修正
  - 同一秒に行われたrefresh tokenローテーションで、古いトークンを再利用できる問題を修正しました。
- **[security]** 削除済みセッション復活の修正
  - キャッシュミス時にデータベースから無条件でキャッシュを再構築し、削除済みセッションを復活させる問題を修正しました。
- **[security]** ユーザー部分フィルターの所属拒否適用
  - ユーザーの部分フィルターが、祖先グループの所属拒否を無視する問題を修正しました。
- **[security]** 管理イベントの秘密鍵属性保護
  - クライアント更新の管理イベントに秘密鍵属性が残る問題を修正しました。
- **[security]** 管理イベントのbearer token保護
  - Registration access tokenの再生成時に、使用可能なbearer tokenを管理イベントへ保存する問題を修正しました。
- **[security]** RP initiated logoutのIdP検証
  - 偽造した `initiating_idp` により、RP initiated logoutが上流brokerのログアウトを抑止できる問題を修正しました。
- **[security]** `Class.forName()` 呼び出しの制限
  - `ComponentResource.getSubcomponentConfig` のクエリーパラメーターに対する無制限の `Class.forName()` 呼び出しを制限しました。
- **[security]** 読み取り専用クライアントプロパティの保護
  - 登録時にClient typeの読み取り専用クライアントプロパティを迂回できる問題を修正しました。
- **[security]** イベント完了判定の修正
  - イベントが消費済みか未保存かを区別できない完了判定を修正しました。
- **[security]** 一括HQL更新のセキュリティ分類
  - 一括HQL `executeUpdate` が `AsyncCommitIntegrator` のセキュリティ分類を迂回する問題を修正しました。
- **[security]** パスワード拒否リストのロケール対応
  - トルコ語ロケールでパスワード拒否リストを迂回できる問題を修正しました。
- **[security]** Token exchangeのactor検証
  - Token exchange providerのルーティングで、delegation tokenが標準交換経由でactor検証を迂回する問題を修正しました。
- **[breaking]** 総当たり攻撃検知データの保存先変更
  - 総当たり攻撃検知データは、デフォルトでデータベースに保存されるようになりました。
- **[breaking]** 永続ログイン失敗のデフォルト化
  - 永続化されたログイン失敗がデフォルトになりました。
- **[breaking]** `getOrganizationId()` の削除
  - `IdentityProviderModel` から `getOrganizationId()` メソッドを削除しました。

## 影響確認
- **[security · medium]** `CVE-2026-14781` の修正
  - OIDC brokerを使用している場合に該当します。
  - OIDC brokerが `id_token` の `email_verified` をuserinfoのメールアドレスに適用し、未検証のアドレスを検証済みとして扱う問題を修正しました。
- **[security · low]** `CVE-2026-4633` の修正
  - organizationsを使用している場合に該当します。
  - Organizations機能有効時のidentity-first loginによるユーザー列挙を修正しました。
- **[security]** LDAP認証情報の送信先修正
  - LDAPを使用している場合に該当します。
  - 接続URLの変更時にLDAP bind credentialsが新しいサーバーへ送信される問題を修正しました。
- **[security]** クライアントシークレットの露出修正
  - Client GET endpointsを使用している場合に該当します。
  - Client GET endpointsが `view-clients` ロール保持者へ生のクライアントシークレットを返す問題を修正しました。
- **[security]** クライアント秘密鍵保存とgenerate endpointsの変更
  - generate endpointsを使用している場合に該当します。
  - データベースへのクライアント秘密鍵の保存を停止し、generate endpointsを非推奨にしました。
- **[security]** `Client baseUrl` のURIスキーム検証
  - `Client baseUrl` を使用している場合に該当します。
  - realm importおよびpartial importで `Client baseUrl` のURIスキーム検証が欠落していた問題を修正しました。
- **[security]** protocol mapper許可リストの適用
  - `allowed-protocol-mappers` を使用している場合に該当します。
  - Admin REST APIのprotocol mapper操作で `allowed-protocol-mappers` の強制が欠落していた問題を修正しました。
- **[security]** OIDC PARキャッシュのrealm紐付け
  - OIDCを使用している場合に該当します。
  - OIDCのPAR request URIを保存する単回使用キャッシュにrealmの紐付けがなかった問題を修正しました。
- **[security]** OID4VCI削除APIの所有者検証
  - OID4VCIを使用している場合に該当します。
  - 発行済み検証可能クレデンシャルの削除用Account API endpointで、所有者の検証が欠落していた問題を修正しました。
- **[security]** Parameterized Scopesのユーザー名列挙修正
  - Parameterized Scopesを設定している場合に該当します。
  - `username` および `delegation` のscope typeを使った事前認証前のユーザー名列挙を修正しました。
- **[security]** Parameterized Scopesのscope解決修正
  - Parameterized Scopesを設定している場合に該当します。
  - 最初に一致したプレフィックスの解決により、緩いscopeが厳しいscopeを隠せる問題を修正しました。
- **[security]** Parameterized Scopesの入力長制限
  - Parameterized Scopesを設定している場合に該当します。
  - `CustomRegexScopeType` が長さ制限のない攻撃者入力へ管理者の正規表現を適用する問題を修正しました。
- **[security]** SCIMグループ操作の管理者チェック
  - SCIM Groups endpointを使用している場合に該当します。
  - SCIM Groups endpointのmembers操作で `isAdminUser` チェックが適用されていなかった問題を修正しました。
- **[security]** SCIM PATCH操作数の制限
  - SCIMを使用し、`maxOperations` を設定している場合に該当します。
  - SCIMのPATCH操作リストにサイズ制限がなく、`maxOperations` が適用されていなかった問題を修正しました。
- **[security]** Client API v2のクライアント作成認可
  - Client API v2を使用している場合に該当します。
  - `addClient()` shimによる一時クライアント作成がrealmレベルの認可を迂回する問題を修正しました。
- **[security]** OID4VCI鍵構成証明の必須化
  - OID4VCIを使用し、`key_attestations_required` を設定している場合に該当します。
  - proof JWTに `key_attestation` ヘッダーがない場合、`key_attestations_required` が適用されない問題を修正しました。
- **[security]** OID4VCI x5cチェーン検証
  - OID4VCIを使用している場合に該当します。
  - 鍵構成証明のx5cチェーンが、EKUや失効状態を確認せずシステムのCA証明書で検証される問題を修正しました。
- **[security]** クレデンシャルオファーの有効期限制限
  - `/create-credential-offer` を使用している場合に該当します。
  - `/create-credential-offer` の `expire` パラメーターに上限がなく、事前認証コードを無期限にできる問題を修正しました。
- **[security]** LD-VCのリモートコンテキスト取得
  - OID4VCIを使用している場合に該当します。
  - LD-VC signerが許可リストやキャッシュなしでHTTP経由のリモート `@context` URLを取得する問題を修正しました。
- **[security]** OID4VCI did属性の一意性検証
  - OID4VCIを使用している場合に該当します。
  - ユーザーが編集できるdid属性をcredential subjectに使い、realm内でしか一意性を確認していなかった問題を修正しました。
- **[security]** Credential requestのRSA暗号方式制限
  - OID4VCIを使用している場合に該当します。
  - Credential requestの復号で、RSA-OAEP-256暗号化キーに対するRSA1_5を受け入れる問題を修正しました。
- **[security]** SCIM Users filterの所属情報漏えい修正
  - SCIM Users filtersを使用している場合に該当します。
  - SCIM Users filterがFGAP下で隠されたグループ所属を漏えいする問題を修正しました。
- **[security]** SCIM Groups filterの所属情報漏えい修正
  - SCIM Groups filtersを使用している場合に該当します。
  - SCIM Groups filterがFGAP下で隠されたユーザー所属を漏えいする問題を修正しました。
- **[security]** SCIMの表示権限適用
  - SCIMを使用している場合に該当します。
  - SCIMの読み取りとフィルターが、マッピング済み属性に対するuser-profileの表示権限を迂回する問題を修正しました。
- **[security]** SD-JWT署名アルゴリズム検証
  - SD-JWTを使用している場合に該当します。
  - SD-JWT検証で、JWSヘッダーと異なるアルゴリズムの署名を受け入れる問題を修正しました。
- **[security]** Server infoのデータベース情報保護
  - Server infoを使用している場合に該当します。
  - Server infoが `view-realm` 管理者へデータベースの運用情報を公開する問題を修正しました。
- **[security]** SAML `LogoutResponse` の署名検証
  - `LogoutResponse` を使用している場合に該当します。
  - 受信する `LogoutResponse` メッセージの署名検証を追加しました。
- **[security]** OIDC Dynamic Client Registration PUTの例外修正
  - OIDC Dynamic Client Registration PUTを使用している場合に該当します。
  - OIDC Dynamic Client Registration PUTで、`scope` フィールドにより未認証のNullPointerException（HTTP 500）が発生する問題を修正しました。
- **[security]** root-pathリダイレクトのセキュリティヘッダー
  - `http-relative-path` を設定している場合に該当します。
  - `http-relative-path` 設定時のroot-pathリダイレクトにセキュリティヘッダーがない問題を修正しました。
- **[security]** OID4VCI RSA1_5 padding oracleの修正
  - OID4VCIを使用している場合に該当します。
  - OID4VCI credential requestに存在した未認証のRSA1_5 padding oracleを修正しました。
- **[security]** OID4VC credential削除範囲の制限
  - OID4VCを使用している場合に該当します。
  - OID4VC発行済みcredentialの削除範囲が、パスのユーザーまたはrealmに限定されていなかった問題を修正しました。
- **[security]** WebAuthn credential重複保存の修正
  - WebAuthnを使用している場合に該当します。
  - 1つのWebAuthn登録セレモニーを同時完了すると、複数のpasswordless credentialが保存される問題を修正しました。
- **[security]** LDAP password-policy parserの修正
  - LDAPを使用している場合に該当します。
  - LDAP password-policy response control parserのwarning/errorタグ衝突と、捕捉されない `NumberFormatException` によるログイン失敗を修正しました。
- **[security]** SCIM membership監査記録
  - SCIMを使用している場合に該当します。
  - SCIM membership PATCHイベントに、変更された関係が監査証跡へ記録されない問題を修正しました。
- **[security]** SCIM従来ロールの所属推測
  - SCIMを使用し、FGAPを有効にしていない場合に該当します。
  - FGAP無効時にSCIMの従来のクエリーロールがリソース間の所属を推測する問題を修正しました。
- **[security]** SCIM Group DELETEの保護
  - SCIM Group DELETEを使用している場合に該当します。
  - SCIM Group DELETEがcascadeを通じて管理リソース保護を迂回する問題を修正しました。
- **[security]** SCIMユーザー削除後の状態整理
  - SCIMを使用している場合に該当します。
  - SCIMによるユーザー削除でセキュリティ状態のクリーンアップが行われない問題を修正しました。
- **[security]** 総当たり攻撃検知カウンターの競合修正
  - 総当たり攻撃検知を使用している場合に該当します。
  - 総当たり攻撃検知のリセット境界で同時に失敗すると、新たに記録した試行が消える問題を修正しました。
- **[security]** `LoginFailureEntity` のフェイルオーバー処理
  - `LoginFailureEntity` を使用している場合に該当します。
  - フェイルオーバー後の `LoginFailureEntity` 非同期コミット分類で、失敗カウンターが破棄される問題を修正しました。
- **[security]** Multi-Cluster v2のRPO設定
  - Multi-Cluster v2を有効にしている場合に該当します。
  - Multi-Cluster v2のRPO「No data loss」と、一時データへのデフォルトの非同期コミットが矛盾する問題を修正しました。
- **[security]** credential offerのロール名前空間修正
  - credential offerを使用している場合に該当します。
  - 同名のクライアントロールによるロール名前空間の混同で、被害者を対象とするcredential offerを認可できる問題を修正しました。
- **[security]** OID4VCI refresh token再利用の修正
  - OID4VCIを使用している場合に該当します。
  - ローテーション済みOID4VCI refresh tokenの再利用で、credential authorityを繰り返し再発行できる問題を修正しました。
- **[security]** SD-JWT有効期間の制限
  - SD-JWTを使用している場合に該当します。
  - ユーザーが編集可能なマッピング属性で、SD-JWT credentialの有効期間を発行者設定より延長できる問題を修正しました。
- **[security]** OID4VCI属性スナップショットの適用
  - OID4VCIを使用している場合に該当します。
  - credential発行が管理者承認済みの属性スナップショットを無視する問題を修正しました。
- **[security]** OID4VCI認証前復号の修正
  - OID4VCIを使用している場合に該当します。
  - 未認証のcredential requestがbearer認証前に秘密鍵JWE復号を開始する問題を修正しました。
- **[security]** 対象指定credential offerの保護
  - OID4VCIを使用している場合に該当します。
  - 盗まれた対象指定offerを更新すると、別ユーザーがoffer必須の発行を迂回できる問題を修正しました。
- **[security]** OID4VCI SD-JWT配列クレーム開示
  - OID4VCIを使用している場合に該当します。
  - OID4VCIのSD-JWT発行で、配列クレームの開示が全体一括になる問題を修正しました。
- **[security]** `kcadm` 設定ファイル権限
  - `kcadm` を使用している場合に該当します。
  - `kcadm` が既存の設定ファイルにある全ユーザー読み取り可能な権限を保持する問題を修正しました。
- **[security]** SCIM検索ログのフィルター値保護
  - SCIMを使用している場合に該当します。
  - SCIM検索が生のフィルター値をデバッグログへ書き込む問題を修正しました。
- **[security]** 復旧サイトのセキュリティ設定更新
  - サイトを使用している場合に該当します。
  - 復旧したサイトが最大1時間、古いセキュリティ設定を適用できる問題を修正しました。
- **[security]** OID4VCI access tokenの用途制限
  - OID4VCIを使用している場合に該当します。
  - OID4VCI access tokenをcredential endpointだけで使用できるようにしました。
- **[security]** OID4VCI展開サイズとメモリ使用の修正
  - OID4VCIを使用している場合に該当します。
  - OID4VCIのメモリリークを防ぎ、展開サイズの上限を追加しました。
- **[security]** organization-IdP link policyの維持
  - organizationsを使用している場合に該当します。
  - realm importでorganization-IdP link policyが許容的なデフォルトへ戻る問題を修正しました。
- **[security]** organization linkの範囲保護
  - organizationsを使用している場合に該当します。
  - Identity-providerの読み取りが、呼び出し元の範囲外にあるorganization linkを開示する問題を修正しました。
- **[security]** client-scoped endpointsの権限制御
  - client-scoped endpointsを使用している場合に該当します。
  - `view-clients` が `client-scoped` endpoints経由で `view-users` 制限を迂回する問題を修正しました。
- **[security]** Admin v2 APIのローテーションポリシー
  - Admin v2 APIを使用している場合に該当します。
  - Admin v2 APIのPATCHがクライアントシークレットローテーションポリシーを迂回する問題を修正しました。
- **[security]** OIDC logout endpointのログインジェクション
  - OIDC logout endpointを使用している場合に該当します。
  - OIDC logout endpointのサニタイズされていない `client_id` によるログインジェクションを修正しました。
- **[security]** SCIM resource ID phishingの修正
  - SCIMを使用している場合に該当します。
  - SCIM resource ID phishingを修正しました。
- **[security]** Admin API v2のクライアントシークレット保護
  - `admin/api` を使用している場合に該当します。
  - Admin API v2が `view-clients` ロール保持者へ平文のクライアントシークレットを返す問題を修正しました。
- **[breaking]** SCIM username編集設定の適用
  - SCIMを使用している場合に該当します。
  - SCIM APIが、Edit username設定を無効にしていてもusernameを更新できる問題を修正しました。
- **[security]** organization mapperの所属検証
  - identity brokeringを使用している場合に該当します。
  - 単一値のorganization mapperが、攻撃者の選択した非メンバーorganizationを出力する問題を修正しました。
- **[security]** Organization group metadataの保護
  - organizationsを使用している場合に該当します。
  - Organization group representationが、権限のない管理者へクライアントおよびrealmロールのメタデータを漏えいする問題を修正しました。
- **[breaking]** Keycloak Realm Operatorの終了
  - Keycloak Realm Operatorを使用している場合に該当します。
  - Keycloak Realm Operatorを終了し、削除しました。
- **[breaking]** OIDC Device flowのscope検証
  - OIDCを使用している場合に該当します。
  - Device flowで、クライアントに許可されていないscopeが `scope` パラメーターに含まれていてもエラーにならない問題を修正しました。

## 事前準備
- **[deprecated]** Multi-cluster v1 の非推奨化
  - `multi-site` を有効にしている場合に該当します。
  - 削除時期は未定
  - `multi-site` 機能である Multi-cluster v1 は非推奨となり、将来のメジャーリリースで削除されます。
- **[deprecated]** `login-failures:v1` の非推奨化
  - `login-failures:v1` を有効にしている場合に該当します。
  - 従来のメモリ内動作は `login-failures:v1` として利用できますが、非推奨になりました。
- **[deprecated]** Kerberos Credential delegationの非推奨化
  - Kerberosを使用している場合に該当します。
  - Kerberos Credential delegationを非推奨にする変更が提案されました。
- **[deprecated]** 従来のOIDCクライアントスイッチの非推奨化
  - `OpenID Connect Compatibility Modes` を設定している場合に該当します。
  - `OpenID Connect Compatibility Modes` にある従来のOIDCクライアントスイッチを非推奨にしました。
- **[deprecated]** volatile sessionsの非推奨化
  - volatile sessionsを設定している場合に該当します。
  - volatile sessionsを非推奨にし、セッションキャッシュを無効にする選択肢を追加しました。
- **[deprecated]** `Full scope allowed` の非推奨化
  - `Full scope allowed` を設定している場合に該当します。
  - `Full scope allowed` クライアントスイッチを非推奨にしました。
- **[deprecated]** OIDC以外のclient registration providerの非推奨化
  - client registration providerを使用している場合に該当します。
  - OIDC以外のclient registration providerを非推奨にしました。
- **[deprecated]** `AUTH_SESSION_ID` cookie routeの非推奨化
  - `AUTH_SESSION_ID` cookieを設定している場合に該当します。
  - スティッキーセッション用の `AUTH_SESSION_ID` cookieからのroute指定を非推奨にしました。
- **[deprecated]** `clusterless` の非推奨化
  - `clusterless` を有効にしている場合に該当します。
  - `clusterless` 機能を非推奨にしました。
- **[deprecated]** メモリ内ログイン失敗の非推奨化
  - メモリ内ログイン失敗を有効にしている場合に該当します。
  - メモリ内ログイン失敗を非推奨にしました。

## その他の記録された変更
- 258 (defect_corrected 158, value_changed 50, added 37, constraint_changed 9, default_changed 3, renamed 1)

[分析の詳細](https://ratatosk.io/ja/releases/keycloak/26.8.0)

[元のリリースノート](https://github.com/keycloak/keycloak/releases/tag/26.8.0)
