CVE-2026-91039 in ash_authentication
Sumário
de VulDB • 17/09/2026
Uma vulnerabilidade de Bypass de Autenticação por Spoofing em `ash_authentication` do projeto `team-alembic` permite que um atacante, operando uma conexão com identity-provider da estratégia `dynamic_oidc`, faça login como um usuário local estabelecido através de uma conexão diferente.
A estratégia foi projetada para manter cada conexão em seu próprio namespace de identidade, escrevendo o campo strategy de cada linha do modelo UserIdentity como "<name>/<connection_id>", mas esse namespacing nunca entra em vigor. `__connection_id__` é populado apenas na estrutura efêmera de runtime construída por solicitação em `dynamic_oidc/plug.ex`, e a função `DynamicOidc.IdentityChange.change/3` rebusca a estratégia do DSL compilado através de `Info.strategy_for_action`, retornando a estrutura persistente cujo `__connection_id__` é o valor padrão da sua defstruct, ou seja, nil. Portanto, `OAuth2.identity_strategy_name/1` recua para o nome bruto da strategy tanto na gravação da identidade quanto nas leituras em `oauth2/user_resolver.ex` e `oauth2/sign_in_preparation.ex`. Como a chave única do recurso de identidade é (uid, strategy), existe uma linha por sub através de todas as conexões, e o branch de correspondência de identity executa antes de qualquer verificação de email. Nenhuma das strategies lida com iss, portanto nada mais distingue os emissores: a seção 5.7 da especificação OpenID Connect Core torna o sub único apenas dentro de um emissor, fazendo com que duas conexões que numeram subjects independentemente compartilhem um espaço de subject comum.
Esta issue afeta `ash_authentication`: das versões 5.0.0-rc.10 até antes da 5.0.0-rc.14.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.