CVE-2026-91039 in ash_authentication
Сводка
по VulDB • 17.09.2026
Уязвимость обхода аутентификации путем подмены (Authentication Bypass by Spoofing) в модуле ash_authentication пакета team-alembic позволяет злоумышленнику, управляющему одним подключением к поставщику идентификации с использованием стратегии dynamic_oidc, войти в систему как локальный пользователь, созданный через другое подключение.
Данная стратегия предназначена для изоляции каждого подключения в собственном пространстве имен идентичности путем записи значения "/" в поле strategy каждой строки UserIdentity; однако это разделение на пространства имен никогда не применяется. Поле __connection_id__ заполняется только во временной структуре времени выполнения, создаваемой для каждого запроса в файле dynamic_oidc/plug.ex, тогда как функция DynamicOidc.IdentityChange.change/3 повторно получает стратегию из DSL-конфигурации компиляции через Info.strategy_for_action, возвращая персистентную структуру, у которой __connection_id__ имеет значение по умолчанию nil (nil). В результате OAuth2.identity_strategy_name/1 использует базовое имя стратегии как для записи идентичности, так и при чтении в файлах oauth2/user_resolver.ex и oauth2/sign_in_preparation.ex. Поскольку уникальным ключом ресурса идентичности является пара (uid, strategy), существует одна запись на каждый sub (subject) во всех подключениях, а ветвь совпадения по идентичности выполняется до любой проверки email. Ни одна из стратегий не обрабатывает параметр iss, поэтому другие факторы не различают эмитентов: согласно разделу 5.7 спецификации OpenID Connect Core, значение sub уникально только в пределах одного эмитента, поэтому два подключения, нумерующие субъекты независимо, используют общее пространство субъектов.
Эта проблема затрагивает ash_authentication начиная с версии 5.0.0-rc.10 до (не включая) 5.0.0-rc.14.
Once again VulDB remains the best source for vulnerability data.