Как ошибка сброса пароля позволяла захватить любой аккаунт Keycloak?

Red Hat и проект Keycloak закрыли критическую уязвимость в сервере управления идентификацией и доступом Keycloak. Ошибка позволяла удалённому злоумышленнику без аутентификации обойти обычное восстановление пароля, не имея доступа к электронной почте владельца, и установить новый пароль для любого пользователя. Взаимодействие с жертвой не требовалось. При успешной атаке под контроль мог попасть и административный аккаунт, а вместе с ним приложения, использующие Keycloak для входа.
Уязвимость получила идентификатор CVE-2026-18963, оценку 9,1 по CVSS и статус Critical. Её классифицировали как CWE-640: слабый механизм восстановления забытого пароля. Red Hat, выступившая центром нумерации CVE для этой ошибки, описала причину так: «Ненадлежащая проверка состояния в процессе аутентификации reset-credentials». Речь идёт о последовательности действий, которую Keycloak запускает после запроса на восстановление учётных данных. Об уязвимости сообщил James Paremain.
Атака начиналась со специально сформированного запроса к конечной точке reset-credentials. Из-за неверной проверки состояния сессия аутентификации сразу переходила к этапу обновления пароля. Обычный action token, который должен быть отправлен владельцу аккаунта по электронной почте, не запрашивался. В результате посторонний человек мог назначить жертве собственный пароль и полностью захватить её учётную запись. Неизвестно, были ли уязвимы все realm с включённым восстановлением пароля или только realm с определённой конфигурацией процесса reset-credentials.
Для основной ветки Keycloak исправление вошло в Keycloak 26.7.2, выпущенный 19 августа 2026 года. Пользователям Red Hat build of Keycloak, или RHBK, предназначены обновления RHBK 26.4.15 и RHBK 26.6.6. Для ветки 26.4 безопасные уровни начинаются с operator bundle 26.4.15-1, образа rhbk/keycloak-rhel9 26.4-23 и образа rhbk/keycloak-rhel9-operator 26.4-23. В исходном описании фраза о ветке 26.4 была обрезана до «4 is unaffected», поэтому ориентироваться следует именно на перечисленные номера сборок.
Для ветки RHBK 26.6 неуязвимыми указаны operator bundle 26.6.6-1, контейнер keycloak-rhel9 26.6-12 и контейнер оператора 26.6-12. 18 августа 2026 года Red Hat выпустила четыре бюллетеня безопасности: RHSA-2026:56519, RHSA-2026:56520, RHSA-2026:56523 и RHSA-2026:56524. Они охватывают пакеты автономного сервера, контейнерные образы и две поддерживаемые ветки RHBK. Простого обновления одного компонента может оказаться мало: версии operator bundle, серверного образа и контейнера оператора стоит сверять отдельно.
Если установить обновление сразу нельзя, Red Hat советует временно отключить функцию Forgot password. В административной консоли RHBK путь выглядит так: Realm settings → Login → Forgot password, после чего переключатель нужно выключить. Настройка применяется к каждому realm отдельно, поэтому отключение в одном realm не защищает остальные. Red Hat считает этот способ временной мерой; штатное решение состоит в переходе на исправленную сборку.
По состоянию на 24 августа 2026 года подтверждённых атак с использованием CVE-2026-18963 не обнаружили, проверенного публичного эксплойта также не было. Это не отменяет проверки административных и других чувствительных аккаунтов: смену паролей, необычные сессии и обращения к reset-credentials следует сопоставить с журналами доступа. Успешная эксплуатация не оставляла владельцу необходимости подтверждать сброс, поэтому обычное ожидание жалобы пользователя здесь ненадёжно.
Публичные записи пока расходятся. В бюллетене GitHub для CVE-2026-18963 затронутые и исправленные версии обозначены как Unknown, хотя исправление задокументировано в выпуске 26.7.2 и обновлениях Red Hat. Сама CVE-запись содержит только ссылки на продукты Red Hat. В её первоначальном варианте Red Hat Single Sign-On 7 числился незатронутым, а Red Hat JBoss Enterprise Application Platform Expansion Pack — затронутым. Позднее перечень продуктов сузили, а отображение в National Vulnerability Database (NVD) обрезает часть сведений. Текущий статус обоих продуктов по доступным данным установить нельзя.
CVE-2026-18963 стала одной из восьми CVE, перечисленных в примечаниях к Keycloak 26.7.2. Там же исправили CVE-2026-15571: предсказуемый хеш связывания аккаунтов мог дать вредоносному клиенту OpenID Connect (OIDC) возможность захватить учётную запись. Двумя неделями ранее, 5 августа 2026 года, вышел Keycloak 26.7.1 с исправлениями 12 CVE. Среди них находились ошибка брокерского входа через инициируемого поставщиком удостоверений SAML, обходившая ограничение link-only, и стандартная политика динамической регистрации клиентов, допускавшая подделку ролей через преобразователи пользовательских свойств.
Исследователь компании Escape Enzo Mongin, рассказывая об отдельной ошибке контроля доступа Keycloak, раскрытой им в июле 2026 года, коротко описал последствия взлома такого сервера: «Они получают доступ ко всему, что находится за ним». Keycloak часто обслуживает единый вход сразу для многих внутренних систем. Поэтому захват администратора способен превратить ошибку восстановления пароля в доступ к сервисам, которые сами по себе не имеют этой уязвимости.
20 августа 2026 года компания Univention сообщила: «Nubus не затронут этой проблемой». Причина проста: в развёртываниях Keycloak, используемых Nubus, функция забытого пароля не активирована. Для остальных установок остаются неясности: опубликованные материалы прямо не подтверждают, что выпущенная правка полностью устраняет ошибку, не описывают точный набор уязвимых конфигураций reset-credentials и не проясняют статус Red Hat Single Sign-On 7 и JBoss EAP Expansion Pack. Практический порядок действий при этом однозначен: установить Keycloak 26.7.2 либо соответствующие сборки RHBK 26.4.15 или 26.6.6, а до обновления отключить Forgot password во всех realm и проверить наиболее привилегированные учётные записи.[/final]


Новое на сайте

Ссылка