概要
オープンソースのID・アクセス管理サーバーKeycloakにおいて、未認証の攻撃者が任意のユーザーアカウントを乗っ取れる重大な脆弱性CVE-2026-18963(CVSS 9.1)が発見された。対象ユーザーのユーザー名またはメールアドレスさえ知っていれば、メール経由の本人確認を経ずにパスワードを新しい値に書き換えられてしまうもので、管理者アカウントを含むあらゆるアカウントが標的になり得る。この脆弱性はJames Paremain氏によって報告され、Red Hatは2026年8月18日にCVEアドバイザリと修正パッチを公開した。修正版であるKeycloak 26.7.2(および26.4.15、26.6.6へのバックポート)が2026年8月19日にリリースされており、影響を受ける環境では早急なアップデートが求められている。8月24日時点で公開されている悪用コードは確認されていないが、CVSSスコアの高さから優先度の高い対応が推奨されている。
技術的な詳細
脆弱性の根本原因は、/realms/{realm}/login-actions/reset-credentialsエンドポイントを中心とするパスワードリセットフロー内の「ステップ順序の検証不備」にある。本来Keycloakのパスワードリセットは、ユーザーがメールで送られる署名付きアクショントークン(verify-emailステップ)を経由してメールの所有権を証明した後にのみ、新しいパスワードの設定に進める設計になっている。しかし今回の欠陥では、認証セッションの中間状態が十分な検証なしに信頼されており、攻撃者が細工したリクエストを送ることで、このメール確認ステップを経ずに認証セッションをパスワード更新フェーズへ直接遷移させることができてしまう。CWE-640(脆弱なパスワード回復メカニズム)に分類されるこの欠陥は、CVSSベクター AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N が示す通り、ネットワーク経由・低い攻撃条件・権限不要・ユーザー操作不要で悪用可能であり、攻撃の再現性が非常に高い点が特に深刻とされている。
対応状況と推奨される対策
Red Hatはこの問題に対し、RHSA-2026:56519、56520、56523、56524の各セキュリティアドバイザリを通じて修正パッケージを提供している。ただちにパッチを適用できない環境向けの緩和策としては、管理コンソールの「Realm settings → Login → Forgot password」から全レルムで「パスワードを忘れた場合」機能を無効化する方法が案内されている。加えて、パッチ適用後には特権アカウントのパスワードを強制的にリセットすること、また認証ログを精査しVERIFY_EMAILイベントを伴わないUPDATE_PASSWORDイベントがないか確認することも推奨されている。パスワードリセット機能はIDプロバイダの中核をなす機能であるだけに、今回のような認証フロー自体の設計不備は影響範囲が広く、Keycloakを利用する組織は自社の実装状況を速やかに確認する必要がある。