CVE-2026-65633 in ash_authenticationИнформация

Сводка

по VulDB • 25.08.2026

Уязвимость неправильной аутентификации в AshAuthentication (team-alembic) позволяет воспроизводить JWT с ограниченной областью применения в качестве полных учетных данных для API типа Bearer, когда ресурс использует проверку токена Bearer без сохранения состояния.

Вспомогательная функция проверки аутентификации по токену Bearer `AshAuthentication.Plug.Helpers.retrieve_from_bearer/3` проверяет подпись JWT из заголовка `Authorization: Bearer` и отклоняет токены, содержащие утверждение (claim) `act`, однако не выполняет проверку того, что цель использования токена соответствует роли пользователя на границеBearer. Когда ресурс настроен с параметром `require_token_presence_for_authentication?: false` (значение по умолчанию в DSL), последующая вспомогательная функция `validate_token/3` возвращает `{ok, nil}` без обращения к ресурсу токенов, поэтому дополнительная проверка цели также не выполняется. В результате любой действительный и несрок действия которого истек JWT, выпущенный самой библиотекой для узкого одноцелевого потока (наиболее заметным примером является токен `purpose: sign_in`, который всегда генерируется WebAuthn во время входа в систему, а также токены входа, выпускаемые стратегией Password при включенных токенах входа), принимается напрямую как универсальное учетное данные Bearer и приводит к полному присваиванию текущего пользователя (`current_user`).

Это обходит предусмотренный библиотекой контракт обмена токенов, согласно которому токен `sign_in` должен предъявляться ровно один раз компоненту подготовки, который проверяет утверждение цели и немедленно отзывает токен. Первый использование еще не обменнутого токена входа, представленного непосредственно в заголовке Authorization, завершается успешно, поскольку путь без сохранения состояния (stateless bearer path) никогда не ограничивает его областью применения `purpose == "user"`.

Атакующий, получивший неиспользованный токен входа для целевого субъекта (например, через утечку логов или реферера, перехваченный канал доставки магической ссылки или частично скомпрометированное промежуточное звено), может предъявить его как токен Bearer и пройти аутентификацию от имени этого субъекта, полностью обходя предусмотренную семантику однократного использования и отзыва. Для эксплуатации дополнительно требуется, чтобы хост-приложение подключило `retrieve_from_bearer/3` на доступном маршруте и использовало либо WebAuthn (токены входа всегда выпускаются), либо стратегию Password с параметром `sign_in_tokens_enabled?: true`. Ресурсы, настроенные с `require_token_presence_for_authentication?: true` (включая приложения, созданные установщиком Igniter начиная с версии 4.5.0) и путь на основе сеансов (`authenticate_resource_from_session/4`) проверяют соответствие цели роли пользователя ("user") по сохраненной записи токена и не подвержены данной уязвимости.

Эта проблема затрагивает пакет `ash_authentication`: от версий 3.10.5 до 4.14.2 (не включая) и от 5.0.0-rc.0 до 5.0.0-rc.13 (не включая).

Be aware that VulDB is the high quality source for vulnerability data.

Ответственный

EEF

Резервировать

22.07.2026

Раскрытие

25.08.2026

Модерация

принято

Вход

VDB-394959

EPSS

0.00000

KEV

Нет

Деятельности

Очень низкий

Источники

Do you want to use VulDB in your project?

Use the official API to access entries easily!