Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
keycloak-cve-2026-18963-hunt — Поиск следов эксплуатации CVE-2026-18963 (неаутентифицированный захват учётной записи Keycloak) в базе данных Keycloak | Kitploit
Инструменты/GitHubGitHub/kyos-public/keycloak-cve-2026-18963-hunt
Анализ уязвимостейЦифровая криминалистикаАутентификацияРеагирование на ИнцидентыБезопасность Баз ДанныхАнализ Журналов
GitHubkyos-public/keycloak-cve-2026-18963-hunt

keycloak-cve-2026-18963-hunt

Поиск следов эксплуатации CVE-2026-18963 (неаутентифицированный захват учётной записи Keycloak) в базе данных Keycloak

Репозиторий
914 ч 34 мин назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2026-18963: перехват учетных записей Keycloak, поиск следов эксплуатации

Скрипт psql, который ищет в базе данных PostgreSQL Keycloak следы эксплуатации CVE-2026-18963 (неаутентифицированный перехват учетной записи через поток reset-credentials).

Опубликовано KYOS. Мы написали его, когда устраняли уязвимость в развертываниях Keycloak, которые мы обслуживаем, чтобы убедиться, что никто не был перехвачен в окне уязвимости.

Уязвимость

CVE-2026-18963 — это недостаток в потоке reset-credentials модуля keycloak-services (keycloak#51833). Неаутентифицированный злоумышленник может завершить процесс сброса пароля для любого пользователя, не переходя по ссылке проверки по электронной почте, а затем установить для учетной записи новый пароль. Взаимодействие с пользователем не требуется.

Серьезность: критическая, CVSS v3.1 9.1 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N), по данным Red Hat и NVD. Корневая причина — некорректная проверка состояния в потоке аутентификации, исправлено в keycloak#51844.

Затронутые / исправленные версии

ВеткаИсправлено в
26.7.x26.7.2 (примечания к выпуску)
26.6.x26.6.6
26.4.x (LTS)26.4.15
26.826.8.0

Все версии ниже указанных в поддерживаемых ветках уязвимы. Выпуски, вышедшие из поддержки (26.5.x, 26.3 и старше), не получат исправление: предполагайте наличие уязвимости и обновляйтесь до исправленной ветки. Red Hat указывает устаревший RH-SSO 7 как не затронутый; Red Hat Build of Keycloak 26.4/26.6 исправлен в 26.4.15-1 / 26.6.6-1.

Обходной путь, если вы не можете сразу установить обновление

Отключение самостоятельного сброса пароля убирает уязвимую точку входа: Консоль администратора > Настройки realm > Вход, выключите «Forgot password» для каждого realm. Через admin API: PUT /admin/realms/{realm} с {"resetPasswordAllowed": false}.

Это блокирует конечную точку login-actions/reset-credentials, но также мешает легитимным пользователям сбрасывать собственные пароли, поэтому рассматривайте это как временную меру до обновления. Обратите внимание, что Red Hat не приводит одобренного смягчающего решения для этой CVE; установка обновления — единственное настоящее исправление.

Что проверяет скрипт

cve-2026-18963-keycloak-hunt.sql выполняет четыре запроса только на чтение:

ЗапросЧто обнаруживает
Q0Хранит ли realm события входа и административные события вообще, и их TTL. Если события отключены или истекли, пустые результаты в Q2/Q3 ничего не доказывают.
Q1Каждый credential с паролем, установленный в окне уязвимости (credential.created_date). Это и есть сам перехват, и он работает, даже если журналирование событий было отключено.
Q2События входа reset/credential, помечающие любой завершенный сброс без SEND_RESET_PASSWORD за предыдущие 24 часа (no_email_before = t). Этот флаг — сигнатура CVE: злоумышленник никогда не запускал отправку письма.
Q3Операции сброса учетных данных и execute-actions через admin API, чтобы исключить маршрут, выполненный администратором.

Использование

root@kitploit:~
# defaults: realm 'master', window since 2026-06-01
psql -U keycloak -d keycloak -f cve-2026-18963-keycloak-hunt.sql

# explicit realm and window (run once per realm, quote values exactly like this)
psql -U keycloak -d keycloak \
  -v realm="'myrealm'" -v since="'2026-05-01'" \
  -f cve-2026-18963-keycloak-hunt.sql

Установите since на время непосредственно перед запуском вашей уязвимой версии. В Kubernetes:

root@kitploit:~
kubectl exec -it my-postgres-pod -- \
  psql -U keycloak -d keycloak -v realm="'myrealm'" -v since="'2026-05-01'" \
  -f - < cve-2026-18963-keycloak-hunt.sql

Интерпретация результатов

Строки в Q1 не являются автоматически признаком компрометации. Сопоставьте каждую с известной легитимной причиной (самостоятельный сброс, действие службы поддержки, новая регистрация) и рассматривайте все необъяснимое как кандидата на перехват.

Строки Q2 с no_email_before = t для RESET_PASSWORD, UPDATE_CREDENTIAL или UPDATE_PASSWORD являются наиболее сильным индикатором эксплуатации этой CVE. Сопоставьте столбец ip_address с вашими журналами доступа.

Сначала проверьте Q0: события входа имеют срок действия (events_expiration) и могут быть полностью отключены. Q1 не истекает, поэтому это самая надежная проверка.

Если вы обнаружили перехват

  1. Отключите затронутую учетную запись или принудительно выполните сброс пароля через доверенный канал.
  2. Отзовите сеансы и офлайн-токены учетной записи (Консоль администратора > Сеансы) и ротируйте любые секреты, к которым она могла получить доступ.
  3. Расширьте расследование: журналы reverse-proxy/ingress вокруг временных меток и IP-адресов из Q2, действия, выполненные учетной записью после изменения учетных данных, и нижестоящие приложения, подключенные через Keycloak.

Предостережения

  • Только чтение, но предпочтительно запускать его на реплике или резервной копии.
  • Написан для Keycloak 26.x на PostgreSQL. Имена таблиц стабильны в последних версиях, но проверьте их в других базах данных или более старых версиях.
  • Отсутствие находок не является доказательством отсутствия компрометации (см. Q0), особенно при коротком сроке хранения событий или отключенном журналировании.

Лицензия

MIT, см. LICENSE. Предоставляется как есть, без гарантий.

Скачать инструмент