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

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

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

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

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

Категории

Все категории
Loading categories
ash-authentication-oauth2-oidc-account-takeover-cve-2026-49757-email-based-user-matching — Эксплойт доказательства концепции для CVE-2026-49757, демонстрирующий захват учетной записи OAuth2/OIDC через сопоставление пользователей по электронной почте в AshAuthentication, с моделированием уязвимых и исправленных обработчиков. | Kitploit
Инструменты/GitHubGitHub/hunt-benito/ash-authentication-oauth2-oidc-account-takeover-cve-2026-49757-email-based-user-matching
Аутентификация и авторизацияАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийCTFТестирование на ПроникновениеАутентификацияОбучение и Образование

Популярное

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

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

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

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

Смотреть все инструменты →
GitHub
hunt-benito/ash-authentication-oauth2-oidc-account-takeover-cve-2026-49757-email-based-user-matching

ash-authentication-oauth2-oidc-account-takeover-cve-2026-49757-email-based-user-matching

Эксплойт доказательства концепции для CVE-2026-49757, демонстрирующий захват учетной записи OAuth2/OIDC через сопоставление пользователей по электронной почте в AshAuthentication, с моделированием уязвимых и исправленных обработчиков.

Репозиторий
22 месяцев назадЕщё не проверено
Поделиться

CVE-2026-49757 — AshAuthentication OAuth2/OIDC: захват учетной записи

Доказательство концепции для CVE-2026-49757 — критической уязвимости в AshAuthentication, в которой OAuth2/OIDC-обратные вызовы разрешались в локальные учетные записи по адресу электронной почты вместо пары идентификаторов (strategy, sub), что позволяло неавторизованный захват учетной записи.

ПолеЗначение
CVECVE-2026-49757
CVSS 4.09.2 (Критический)
CWECWE-290 (Обход аутентификации путем подмены)
GHSAGHSA-777c-2fxx-qr28
Затронутые версииash_authentication >= 0.1.0, < 4.14.0 и >= 5.0.0-rc.0, < 5.0.0-rc.10
Исправлено в4.14.0, 5.0.0-rc.10

Краткое описание атаки

  1. Жертва регистрируется в целевом приложении, используя AshAuthentication
  2. Злоумышленник регистрируется на любом принимаемом OAuth-провайдере, используя email жертвы
  3. Злоумышленник входит через OAuth — приложение сопоставляет по email и создает сессию для учетной записи жертвы

Никаких учетных данных жертвы не требуется. Злоумышленнику нужен только email жертвы и учетная запись на любом OAuth-провайдере, который принимает цель.

Требования

  • Python 3.8+
  • Только стандартная библиотека (не требуется pip install)

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

root@kitploit:~
# Interactive mode (recommended)
python3 exploit.py

# Non-interactive mode (piped input)
echo | python3 exploit.py

Что демонстрирует PoC

Фаза 1: Уязвимый обработчик (Сопоставление по email)

Имитирует IdentityChange.change/3 из AshAuthentication с опцией upsert_identity: :unique_email:

  • Жертва регистрируется с [email protected] (роль: admin)
  • Жертва связывает аккаунт Google OAuth (sub: google-victim-real-12345)
  • Злоумышленник регистрируется на Keycloak с [email protected] (email_verified: false)
  • Злоумышленник инициирует OAuth-вход → приложение сопоставляет по email → злоумышленник получает сессию жертвы

Фаза 2: Исправленный обработчик — политика :reject (по умолчанию)

Имитирует исправленный UserResolver с поиском по (strategy, sub):

  • sub злоумышленника (keycloak-attacker-fake-789) не найден в user_identities
  • on_untrusted_email_match: :reject блокирует вход
  • Атака предотвращена

Фаза 3: Исправленный обработчик — политика :confirm

  • Злоумышленник пытается войти через OAuth с email жертвы
  • Система отправляет токен подтверждения на email жертвы
  • Идентификатор связывается только после подтверждения жертвой
  • Атака предотвращена (злоумышленник не контролирует почтовый ящик)

Фаза 4: Исправленный обработчик — trust_email_verified? = true

  • Легитимный пользователь входит через Google с email_verified: true → автоматическая привязка успешна
  • Злоумышленник входит через Keycloak с email_verified: false → вход заблокирован
  • Удобство сохранено для доверенных провайдеров, безопасность — для недоверенных

Файлы

ФайлОписание
exploit.pyОсновной скрипт PoC — запускает все 4 фазы
vulnerable_handler.pyИмитированные обработчики OAuth-обратных вызовов (уязвимый + исправленный)

Исправление (ash_authentication >= 4.14.0)

  1. Модуль UserResolver — разрешает пользователей по идентификатору (strategy, sub) вместо email
  2. Опция on_untrusted_email_match — :reject (по умолчанию), :confirm или :warn для неизвестных sub
  3. Опция trust_email_verified? — флаг на провайдера, по умолчанию true для GitHub/Google/Auth0/Slack/Apple
  4. Уникальный ключ идентификатора — изменён с (strategy, uid, user_id) на (strategy, uid)
  5. Ограничения upsert — user_id никогда не обновляется при конфликте
  6. Предупреждения во время компиляции — для стратегий без identity_resource

Ссылки

  • NVD — CVE-2026-49757
  • GHSA-777c-2fxx-qr28
  • OpenID Connect Core §5.7 — Claim Stability
  • AshAuthentication on Hex.pm

Отказ от ответственности

Этот PoC предназначен только для образовательных целей и защитного тестирования. Тестируйте только на системах, которыми вы владеете или на тестирование которых у вас есть явное разрешение.

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