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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2021-20323 | Kitploit
Инструменты/GitHubGitHub/ndmalc/cve-2021-20323
Анализ уязвимостейЭксплуатация веб-приложенийВеб-безопасностьТестирование на ПроникновениеСтатьи и ИсследованияОбучение и Образование
GitHubndmalc/cve-2021-20323

CVE-2021-20323

Репозиторий
1323 лет назадЕщё не проверено

Популярное

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

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

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

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

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

CVE-2021-20323

Описание

Keycloak до версии 18.0.0 и после 10.0.0 содержит отражённую XSS-уязвимость в конечной точке clients-registrations. Ошибка срабатывает при отправке через POST JSON-структуры с ключом в качестве имени параметра, который не поддерживается конечной точкой. В ответе JSON-ключ отражается в сообщении об ошибке, а заголовок устанавливается как Content-Type: text/html. При выполнении в браузере HTML-код из JSON-ключа интерпретируется, что позволяет запустить JavaScript-код. Аутентификация не требуется, и уязвимость затрагивает все доступные realm.

В настоящее время, поскольку уязвимость требует Content-Type: application/json и отправляется через POST, не существует распространённого пути эксплуатации, который оказывал бы воздействие на пользователя.

Этот репозиторий предоставляет POC для CVE-2021-20323, а также рекомендации по устранению и смягчению уязвимости.

Как воспроизвести уязвимость

Уязвимость очень легко воспроизвести.

root@kitploit:~
curl -v -X POST {BaseURL}/realms/master/clients-registrations/default -H "Content-type: application/json" -d "{\"\":1}"

Также её можно воспроизвести с помощью провайдера openid-connect.

root@kitploit:~
curl -v -X POST {BaseURL}/realms/master/clients-registrations/openid-connect -H "Content-type: application/json" -d "{\"\":1}"

Примечание: в более старых версиях Keycloak (работающих на wildfly вместо quarkus) базовый путь использует /auth/realms/* вместо /realms/*

Эксплуатируема ли уязвимость?

Как видно из нескольких источников здесь или здесь, обычно невозможно эксплуатировать отражённый POST XSS, который требует Content-Type: application/json. Единственный случай, когда это возможно, — если политика CORS была вручную ослаблена по сравнению со значением по умолчанию для разрешения кросс-доменных запросов. Предполагать такой сценарий разумно только в очень специфических случаях, созданных владельцем приложения по функциональным причинам. Чтобы в таком случае уязвимость была эксплуатируемой, атакующий должен либо контролировать домен/сервер, разрешённый в политике CORS, либо иметь XSS на этом втором домене, который можно использовать в качестве ретранслятора.

В случае CVE-2021-20323 Keycloak не принимает POST с Content-Type типа multipart/form-data или application/x-www-form-urlencoded — единственными двумя типами, допустимыми в обычной отправке form. Это делает CVE-2021-20323 эксплуатируемой только в том случае, если CORS явно это разрешает.

root@kitploit:~
# curl -X POST {BaseURL}/realms/master/clients-registrations/default -H "Content-type: multipart/form-data" -d "{\"\":1}"
{"error":"RESTEASY003065: Cannot consume content type"}

# curl -X POST {BaseURL}/realms/master/clients-registrations/default -H "Content-type: application/x-www-form-urlencoded" -d "{\"\":1}"
{"error":"RESTEASY003065: Cannot consume content type"}

Как исправить?

Обновитесь до Keycloak 18.0.0 или более поздней версии.

Не существует известной исправленной версии для RedHat Single Sign-On, который является переупакованной версией Keycloak от RedHat.

Альтернативные меры смягчения

  1. Разверните обратный прокси-сервер, чтобы запретить любые вызовы к clients-registrations
  2. Настройте Keycloak с помощью ACL для ограничения доступа к clients-registrations, аналогично этой записи в блоге Keycloak

Ссылки

  • https://github.com/keycloak/keycloak/security/advisories/GHSA-m98g-63qj-fp8j
  • https://nvd.nist.gov/vuln/detail/CVE-2021-20323
  • https://bugzilla.redhat.com/show_bug.cgi?id=2013577
  • https://access.redhat.com/security/cve/CVE-2021-20323
  • https://github.com/keycloak/keycloak/commit/3aa3db16eac9b9ed8c5335ac86f5f50e0c68662d
  • https://security.stackexchange.com/questions/263301/reflected-xss-found-in-web-application-via-post-request-with-json-body-is-this
  • https://www.keycloak.org/2021/12/cve

Лицензия

Лицензия MIT © [ndmalc]

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