Keycloak CVE-2026-18963: угон любого аккаунта через обход email-верификации при сбросе пароля

Коротко о главном
19–21 августа 2026 года Red Hat и сообщество Keycloak выпустили патчи для CVE-2026-18963 — критической уязвимости (CVSS 9.1) в потоке сброса пароля, позволяющей неаутентифицированному атакующему захватить произвольный аккаунт, включая административные, без перехвата электронной почты. Атака не требует никаких предварительных привилегий. Единственное условие — знать имя пользователя или email-адрес цели.
Если вы используете Keycloak или Red Hat Build of Keycloak как Identity Provider (IdP) в своём продукте, приоритет обновления — максимальный. Организациям, которые не могут обновиться немедленно, рекомендуется отключить функцию «Забыли пароль» во всех realm-ах до применения патча. Уязвимость затрагивает ключевую функцию IAM-слоя, который защищает информационную безопасность всего продукта — включая данные пользователей, сессии и административный доступ.
Публичного эксплойта пока нет, и на момент публикации патча фактической эксплуатации в «дикой природе» не зафиксировано. Тем не менее порог входа для атакующего крайне низкий: достаточно знать email любого пользователя и иметь сетевой доступ к endpoint-у сброса пароля.
Как работает уязвимость
Корень проблемы — нарушенная очерёдность шагов в графе выполнения reset-credentials flow. Когда пользователь инициирует сброс пароля, Keycloak запускает многошаговую цепочку: ввод email → отправка письма со ссылкой → переход по ссылке (подтверждение владения ящиком) → ввод нового пароля. В уязвимых версиях система доверяет промежуточному состоянию сессии и не форсирует завершение шага email-верификации перед тем, как разрешить изменение учётных данных.
Это позволяет атакующему пройти по потоку сброса от первого шага к последнему, минуя email-верификацию. Результат — полный контроль над аккаунтом жертвы без какого-либо взаимодействия с её почтой. Уязвимость классифицируется по CWE-640 (Weak Password Recovery Mechanism for Forgotten Password). Исследователь James Paremain, обнаруживший проблему, опубликовал описание технических деталей в рамках ответственного раскрытия.
Что получает атакующий
Захваченный аккаунт открывает доступ к любому ресурсу, защищённому этим Keycloak-реалмом. В корпоративных средах это может означать доступ к внутренним сервисам, API и данным клиентов. Если скомпрометирован аккаунт администратора реалма, атакующий получает полное управление всей IAM-конфигурацией: может создавать новых привилегированных пользователей, выдавать себе токены с расширенными правами и менять политики безопасности.
Для продуктов, построенных на Keycloak как центральном IdP, это означает потенциальный горизонтальный переход ко всем микросервисам и интегрированным системам. Особенно высок риск для мультитенантных SaaS-платформ, где один реалм обслуживает несколько клиентов. Регулярный аудит кода приложения и настроек IAM помог бы обнаружить подобные уязвимости ещё на этапе конфигурирования.
Версии и патчи
Уязвимость устранена в нескольких обновлениях, вышедших 18–21 августа 2026 года. Для пользователей upstream-версии Keycloak — обновление до версии 26.7.2, которая помимо CVE-2026-18963 закрывает ещё семь уязвимостей: CVE-2026-45292, CVE-2026-14613, CVE-2026-59888, CVE-2026-59889, CVE-2026-15945, CVE-2026-17048 и CVE-2026-15571.
Для пользователей Red Hat Build of Keycloak выпущены четыре advisory: RHSA-2026:56519, RHSA-2026:56520, RHSA-2026:56523 и RHSA-2026:56524. Обновление доступно через стандартные каналы Red Hat Customer Portal. Проверьте используемую вами версию через команду bin/kc.sh --version или в административной консоли — в разделе Server Info.
Временная мера при невозможности немедленного обновления
Если обновление в ближайшие часы невозможно, отключите функцию сброса пароля во всех реалмах через административную консоль: Authentication → Flows → Reset credentials → отключите поток. Либо через CLI: kcadm.sh update realms/<realm> -s resetPasswordAllowed=false. Это заблокирует легитимных пользователей от самостоятельного восстановления доступа, но устранит поверхность атаки. Временная мера — не замена патчу: обновляйтесь при первой возможности.
После применения патча рекомендуется также принудительно сбросить пароли для всех привилегированных и административных аккаунтов, а в логах аутентификации проверить аномальные события reset-credentials flow за последние недели.
Часто задаваемые вопросы
Затрагивает ли уязвимость облачные инстанции Red Hat SSO? Уязвимость описана в Red Hat Build of Keycloak — self-hosted вариант. Для облачных managed-сервисов уточните статус у вашего провайдера: они могут применять патчи независимо от вашего графика.
Нужно ли менять пароли всем пользователям? Если нет признаков эксплуатации в логах, достаточно применить патч и сбросить пароли привилегированных аккаунтов. Для highvalue-пользователей (администраторы, finance, HR) сброс рекомендован превентивно.
Как проверить, был ли exploited наш Keycloak? Анализируйте события типа RESET_PASSWORD в логах аудита Keycloak. Подозрительный паттерн — успешная смена пароля без предшествующего события VERIFY_EMAIL или EXECUTE_ACTION_TOKEN для того же session ID.
Применимо ли это к Keycloak, встроенному в другие продукты (Quarkus, JBoss)? Уязвимость в компоненте keycloak-services, который используется в Red Hat Build of Keycloak. Если ваш стек использует эту сборку — вы под угрозой. Сверьтесь с документацией вашей платформы.
Источники
Red Hat Customer Portal — CVE-2026-18963 (официальный первоисточник).
SentinelOne Vulnerability Database — CVE-2026-18963: Keycloak Auth Bypass Vulnerability.
Kudelski Security Research — Keycloak Credential Reset Authentication Bypass.
Ваш продукт использует Keycloak или другой IdP?
Проверим конфигурацию IAM, выявим уязвимые места в потоках аутентификации и поможем выстроить безопасную архитектуру управления доступом.