Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-privilege user
-
DeliveryInvoke exposed TOTP setup on victim's record
-
ExploitReceive victim's pending secret and setup token
-
ExecutionConfirm attacker-controlled secret via ConfirmSetupChange
-
ImpactSign in as victim or hold second factor
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Object-level authorization, IDOR prevention
|
| Exploitation Conditions | Exploitation requires that the application expose the TOTP 'setup' or 'confirm_setup' action on a record the caller identifies (for example through AshJsonApi, AshGraphql, or a custom controller that passes a looked-up user to AshAuthentication.Strategy.Totp.Actions.confirm_setup/3) AND that the attacker, an authenticated account holder (PR:L), can read the victim's user record. Signing in as the victim additionally requires sign_in_enabled? true; without it the attacker only holds the victim's second factor. Key limiting factors: the built-in AshAuthentication and AshAuthenticationPhoenix routes always operate on the signed-in user and are NOT exploitable; only pre-release versions 5.0.0-rc.0 through 5.0.0-rc.15 are affected; and a read policy restricting users to their own record (when the action is reached through AshJsonApi/AshGraphql, which load the record via that policy before the action runs) blocks the attack. |
| Impact | This is a genuine but conditional account-takeover flaw, not inflated severity. The authoritative signal is the vendor/CNA-provided CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:N, score 7.6): network-reachable, low complexity once reachable, requiring an authenticated low-privilege user (PR:L) and a present attack requirement (AT:P) that maps to the non-default exposure of the TOTP setup/confirm_setup actions. Confidentiality and integrity impact are High (an attacker can plant a TOTP secret they control on a victim's record and then sign in as that victim or hold their second factor), with no availability impact (VA:N). Exploitation is confirmed no-public-exploit: no CISA KEV listing and no EPSS value were supplied, and the references are the advisory plus fix commits, not proof-of-concept code - so there is no public exploit identified at time of analysis and no evidence of active exploitation. The vuln.today decision label is 'this_week', consistent with a serious authorization bypass that is gated behind specific deployment exposure rather than an emergency. Two caveats to state explicitly: (1) the flaw only affects applications that expose the setup/confirm_setup actions on a caller-chosen record (e.g. via AshJsonApi, AshGraphql, or a custom controller) - the built-in AshAuthentication/AshAuthenticationPhoenix routes always use the signed-in user and are NOT affected, so real-world exposure depends heavily on how the integrator wired these actions; (2) only pre-release 5.0.0-rc.0 through 5.0.0-rc.15 are affected, which further narrows the exposed population. EPSS is absent (not an error); its absence plus no KEV supports treating this as patch-this-week rather than drop-everything. |
| Exploit ScenarioDerived | An authenticated low-privilege user of an Ash application that has exposed the TOTP setup/confirm_setup actions by record key (e.g. through AshJsonApi or AshGraphql) and can read another user's record calls setup against the victim's record, receiving the victim's pending secret and setup token, then calls confirm_setup to install an attacker-controlled TOTP secret onto the victim's account. With sign_in enabled, the attacker then logs in as the victim using the victim's email plus an attacker-generated code; otherwise the attacker permanently holds the victim's second factor. No public exploit code was identified at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Nov 03, 2026
An authenticated account holder can bind a TOTP authenticator secret they control onto another user's account in AshAuthentication 5.0.0-rc.0 through 5.0.0-rc.15, then sign in as that user (when sign_in_enabled? is true) or quietly hold their second factor. The exposure is conditional rather than universal: it requires the application to expose the TOTP setup or confirm_setup action on a record the caller names - for example through AshJsonApi, AshGraphql, or a custom controller that passes a looked-up user into AshAuthentication.Strategy.Totp.Actions.confirm_setup/3 - and requires the attacker to be able to read the victim's user record, whereas the built-in AshAuthentication and AshAuthenticationPhoenix routes always operate on the signed-in user and are not affected. Fixed in 5.0.0-rc.16; no public exploit code identified at time of analysis, and only pre-release builds are in scope.
RemediationAI
Vendor-released patch: upgrade ash_authentication to 5.0.0-rc.16, which makes confirm_setup reject any setup token whose sub claim does not name the record being confirmed and stops the TOTP setup changesets from being marked as AshAuthentication interactions. Be aware of the behavioural side effect of that second change: applications that call these actions directly and were silently relying on the interaction bypass will now have the resource's policies enforced and may start failing authorization until a policy permitting the actor is added. Teams that cannot upgrade immediately can close the hole by not exposing setup or confirm_setup on a record the caller chooses, instead invoking them through AshAuthentication.Strategy.Totp.Actions with the signed-in user as the built-in routes do; when the actions are reached via AshJsonApi or AshGraphql, a read policy that only lets users read their own record also blocks the attack, because those interfaces load the record through that policy before the action runs - at the cost of restricting legitimate administrative or support lookups. Because the flaw lets an attacker plant a secret, upgrading alone does not undo an already-installed secret, so review TOTP enrollments on affected accounts for unexpected changes after remediation. Advisory and patch references: https://github.com/team-alembic/ash_authentication/security/advisories/GHSA-gx67-694c-655c, https://github.com/team-alembic/ash_authentication/commit/4058be0f519c2e9b0d2266e90f9c7d8547d54574, and https://osv.dev/vulnerability/EEF-CVE-2026-119215.
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 the authentication extension for the Elixir Ash framework, and its TOTP strategy (built on nimble_totp) implements the standard two-step enrollment: setup generates a pending secret plus a setup token, and confirm_setup takes that token and a code and persists the secret onto the record the action is invoked on. The root cause is CWE-639, authorization bypass through a user-controlled key: AshAuthentication.Strategy.Totp.ConfirmSetupChange validated that the setup token was genuine but never checked that the token's subject (sub claim) named the record being confirmed, so an attacker's own pending secret could be confirmed onto somebody else's row. Compounding this, the TOTP setup changesets (ConfirmSetupChange, GeneratePendingSetupChange, GenerateSecretChange) marked themselves as AshAuthentication interactions, which the framework's standard bypass AshAuthentication.Checks.AshAuthenticationInteraction policy waves through - meaning an application policy restricting setup and confirm_setup to the actor's own record never executed when those actions were called directly by record key, and a direct setup call against another user returned that user's pending secret and setup token. The rc.16 fix adds the sub-claim-to-record check and stops marking the setup changesets as interactions (AshAuthentication.Strategy.Totp.Actions still does so for the record it is handed), and the advisory notes the same token check was applied to AshAuthentication.Strategy.Password.ResetTokenValidation.
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:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
Network-reachable action requiring an authenticated account (PR:L); the non-default action exposure is a deployment precondition rather than per-attack complexity, so AC:L; account takeover yields C:H/I:H, no availability impact.
Primary rating from Vendor (EEF).
CVSS VectorVendor: EEF
DescriptionCVE.org
Authorization Bypass Through User-Controlled Key vulnerability in team-alembic ash_authentication allows a user with an account to install a TOTP secret they control on another user's account, and then sign in as that user or hold their second factor.
AshAuthentication.Strategy.Totp.ConfirmSetupChange verified a setup token but did not check that it was issued to the record being confirmed, so an attacker's own pending secret could be confirmed onto another user's record. The TOTP setup changes, ConfirmSetupChange, GeneratePendingSetupChange and GenerateSecretChange, also marked their changesets as AshAuthentication interactions, which the standard AshAuthenticationInteraction policy bypass lets through. A policy limiting setup and confirm_setup to the actor's own record therefore never ran when an application exposed those actions by record key, and a direct setup call on another user's record returned that user's pending secret and setup token.
This issue affects ash_authentication: from 5.0.0-rc.0 before 5.0.0-rc.16.
Executive ViewAI
CVE-2026-119215 is a high-severity flaw in AshAuthentication pre-release versions (5.0.0-rc.0 through 5.0.0-rc.15) that could allow an authenticated attacker to bind their own TOTP authenticator to another user's account, potentially leading to account takeover. Only applications that expose certain TOTP setup actions on attacker-specified records and permit reading victim user records are at risk; the built-in authentication routes are not affected. Leadership should prioritize patching to version 5.0.0-rc.16, as the vulnerability impacts the integrity of multi-factor authentication and could compromise user trust.
Apply vendor patch.
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
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
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
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
Password sign-in in AshAuthentication Phoenix (ash_authentication_phoenix 1.7.0 to <2.17.4 and 3.0.0-rc.0 to <3.0.0-rc.1
EUVD-2026-116024
NVD
CVE.org
Vulnrichment
GitHub
Exploit-DB