Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain victim session token
-
DeliveryVictim resets or changes password (non-atomic action)
-
ExploitLogOutEverywhere guard evaluates before hash set, skips revocation
-
ExecutionAttacker's stored token remains valid
-
ImpactRetain authenticated access to victim account
Vulnerability Assessment
| Weakness |
CWE
|
| Exploitation Conditions | Exploitation requires all of the following: the log_out_everywhere add-on must be enabled with apply_on_password_change? true (which mix ash_authentication.install writes by default), together with tokens enabled, store_all_tokens? true, and require_token_presence_for_authentication? true; the password must be changed via a non-atomic update action - specifically the generated password reset action or the installer's change_password action - because the where: changing(hashed_password) guard is evaluated before the HashPasswordChange before_action hook sets the new hash, so the guard is always false and tokens are never revoked; and the attacker must already hold one of the victim's valid session tokens. Limiting factors: the attack presupposes a prior session-token compromise (the flaw only prevents the expected revocation, it grants no new access), the vulnerable add-on/configuration must be active, and only versions 4.5.0 before 4.15.1 and 5.0.0-rc.0 before 5.0.0-rc.16 are affected. The only complete fix stated by the vendor is upgrading to 4.15.1 or 5.0.0-rc.16. |
| Impact | This is a medium-severity, precondition-gated session-management flaw rather than a top-priority emergency. The supplied CVSS 4.0 vector (CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:L/VA:N, score 6.3) shows a network vector with low complexity but AT:P - an attack requirement - which encodes the key limiter stated in the advisory: the attacker must already hold one of the victim's valid session tokens, and the add-on must be configured with apply_on_password_change? true while the password is changed through a non-atomic action. PR:N reflects that no additional application privileges are needed once a token is held, and the impact is capped at VC:L/VI:L/VA:N (continued read/write access within the compromised session, no availability impact). No EPSS score was provided, so exploitation probability cannot be quantified from this data. The CVE is not listed in CISA KEV and there is no public exploit identified - only the GHSA advisory, the EEF/OSV records, and introducing/fix commits are referenced. The vuln.today decision label is 'this_month', consistent with a real-but-not-urgent issue: meaningful because it defeats a security control users explicitly opted into (log_out_everywhere / password-reset session revocation), but bounded because it presupposes an already-compromised session and a specific configuration. Net: a genuine but conditional priority to patch this month, not a widespread drive-by threat. |
| Exploit ScenarioDerived | An attacker who has already captured a victim's session token (e.g., via an earlier XSS, device theft, or token leak) continues to use that session. The victim, suspecting compromise, resets or changes their password expecting all sessions to be revoked; because the generated password-reset action and the installer's change_password action are non-atomic, the hashed_password change guard never fires and the stored tokens are not revoked, so the attacker's session remains valid. No public exploit code is identified; exploitation requires prior possession of a session token and the vulnerable configuration. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Nov 03, 2026
Sessions remain valid in AshAuthentication after a victim resets or changes their password, so an attacker who already holds one of the victim's session tokens stays signed in despite the credential change. Only deployments using the log_out_everywhere add-on with apply_on_password_change? true (which mix ash_authentication.install writes by default) - combined with tokens enabled, store_all_tokens? true and require_token_presence_for_authentication? true - are affected, and only when the password is changed through a non-atomic action such as the generated password reset action or the installer's change_password action; versions 4.5.0 before 4.15.1 and 5.0.0-rc.0 before 5.0.0-rc.16 are impacted. Severity is medium (CNA score 6.3 under CVSS 4.0; assessor vector CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N), no public exploit has been identified at time of analysis, and vendor-released patches are available in 4.15.1 and 5.0.0-rc.16.
RemediationAI
Vendor-released patch: upgrade ash_authentication to 4.15.1 (for the 4.5.x line) or 5.0.0-rc.16 (for the 5.0.0 release-candidate line); the vendor states upgrading is the only complete fix. The corresponding upstream fix commits are https://github.com/team-alembic/ash_authentication/commit/954697f168d55112b5050acddcd936b8bc1fba2b and https://github.com/team-alembic/ash_authentication/commit/2baef4eddeb604569d3564273d03eeef438e002c, and the advisory is https://github.com/team-alembic/ash_authentication/security/advisories/GHSA-j6f8-qcj9-gh4r. Until the upgrade is deployed, applications that enable the add-on can explicitly invoke the log_out_everywhere action (which revokes all non-expired stored tokens for a subject) as part of their password-reset and change_password flows, since the automatic invocation is what fails on non-atomic actions; this requires wiring an extra call into those flows and does not repair the broken guard for arbitrary non-atomic update actions. Changing apply_on_password_change? to false disables the feature rather than fixing it, and neither workaround removes the need to upgrade.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
AshAuthentication is an authentication library for the Elixir Ash framework, configured through Spark DSL extensions and transformers. The log_out_everywhere add-on, when configured with apply_on_password_change? true, has AshAuthentication.AddOn.LogOutEverywhere.Transformer attach an OnPasswordChange global change to update actions, guarded by where: changing(hashed_password). That guard is evaluated before the action's before_action hooks run, while AshAuthentication.Strategy.Password.HashPasswordChange writes the new password hash in a before_action hook - so on any non-atomic password change the guard evaluates false and the user's stored tokens are never revoked. The generated password reset action and the installer's change_password action are both non-atomic, which is exactly the configuration the installer produces. The root-cause class is improper session invalidation after an authentication credential change, which the CNA maps to CWE-1466; affected artifacts are cpe:2.3:a:team-alembic:ash_authentication for the 4.5.0-4.15.0 and 5.0.0-rc.0-5.0.0-rc.15 ranges. The flaw only defeats an expected revocation: it grants no new access, and an attacker must already possess a valid victim session token.
Know when Ash Authentication gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N
AC:H because exploitation depends on the specific log_out_everywhere config, a non-atomic password change, and the attacker already holding a valid token; C:L/I:L for continued session access, A:N as no availability impact.
Primary rating from Vendor (EEF).
CVSS VectorVendor: EEF
DescriptionCVE.org
Improper Session Invalidation after Authentication Credential Change vulnerability in team-alembic ash_authentication allows an attacker holding a victim's session token to stay signed in after the victim resets or changes their password.
With apply_on_password_change? true, AshAuthentication.AddOn.LogOutEverywhere.Transformer adds OnPasswordChange to update actions as a global change guarded by where: changing(hashed_password). That condition is evaluated before the action's before_action hooks run, but AshAuthentication.Strategy.Password.HashPasswordChange sets the new hash in a before_action hook, so for every non-atomic password change the condition is false and the user's stored tokens are not revoked. The generated password reset action and the installer's change_password action are both non-atomic.
This issue affects ash_authentication: from 4.5.0 before 4.15.1 and from 5.0.0-rc.0 before 5.0.0-rc.16.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
More in Ash Authentication
View allAccount takeover in team-alembic AshAuthentication (0.1.0 to <4.14.0 and 5.0.0-rc.0 to <5.0.0-rc.10) lets an unauthentic
Ash Authentication is an authentication framework for Elixir applications. Rated medium severity (CVSS 6.3), this vulner
Authentication bypass in the Elixir library ash_authentication lets an attacker who operates one federated identity-prov
Account takeover in AshAuthentication (Elixir/Ash) 4.14.0 through 4.14.x and 5.0.0-rc.10 through 5.0.0-rc.13 lets unauth
Unconfirmed accounts can obtain an authenticated session in the AshAuthentication Elixir library, defeating the mandator
Revoked sessions continue to be treated as fully authenticated on affected AshAuthentication and AshAuthentication Phoen
Reusing a leaked single-use magic-link token is possible in the Elixir library ash_authentication because its validity c
Denial of service in the AshAuthentication API-key sign-in strategy lets an unauthenticated, remote attacker exhaust ser
JWT token replay in AshAuthentication exposes any application using the stateless bearer-token path to full account take
An authenticated account holder can bind a TOTP authenticator secret they control onto another user's account in AshAuth
Authentication bypass in the AshAuthentication library for Elixir/Ash lets an authenticated attacker who holds a valid s
An authenticated account-takeover primitive exists in the Elixir library AshAuthentication (ash_authentication) versions
EUVD-2026-116148
NVD
CVE.org
Vulnrichment
GitHub
Exploit-DB