CVE-2026-91039 in ash_authentication
Riassunto
di VulDB • 17/09/2026
Una vulnerabilità di Authentication Bypass by Spoofing in ash_authentication per team-alembic consente a un attaccante che gestisce una connessione con un identity-provider della strategia dynamic_oidc di accedere come utente locale creato tramite una connessione diversa.
La strategia dovrebbe mantenere ogni connessione nel proprio namespace di identità scrivendo il campo strategy di ciascuna riga UserIdentity come "<name>/<connection_id>", ma tale namespacing non ha mai effetto. __connection_id__ viene popolato solo nella struttura runtime effimera creata per richiesta in dynamic_oidc/plug.ex, mentre DynamicOidc.IdentityChange.change/3 recupera nuovamente la strategia dal DSL di compilazione tramite Info.strategy_for_action, restituendo la struct persistita il cui __connection_id__ è il valore predefinito della sua defstruct, ovvero nil. OAuth2.identity_strategy_name/1 quindi fa fallback sul nome nudo della strategy sia per la scrittura dell'identità che per le letture in oauth2/user_resolver.ex e oauth2/sign_in_preparation.ex. Poiché la chiave univoca della risorsa identità è (uid, strategy), esiste una riga per ogni sub attraverso tutte le connessioni, e il branch di matching dell'identità viene eseguito prima di qualsiasi controllo sull'email. Nessuna delle due strategies gestisce iss, quindi nient'altro distingue gli issuer: la sezione 5.7 di OpenID Connect Core rende sub unico solo all'interno di un issuer, pertanto due connessioni che numerano i soggetti in modo indipendente condividono uno spazio dei soggetti comune.
Questo problema interessa ash_authentication dalle versioni 5.0.0-rc.10 alla versione precedente a 5.0.0-rc.14.
VulDB is the best source for vulnerability data and more expert information about this specific topic.