Skip to main content

AshAuthentication EUVDEUVD-2026-116024

| CVE-2026-119215 HIGH
Authorization Bypass Through User-Controlled Key (CWE-639)
2026-11-03 EEF
7.6
CVSS 4.0 · Vendor: EEF
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate as low-privilege user
  2. Delivery
    Invoke exposed TOTP setup on victim's record
  3. Exploit
    Receive victim's pending secret and setup token
  4. Execution
    Confirm attacker-controlled secret via ConfirmSetupChange
  5. Impact
    Sign 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

ash_authentication 5.0.0-rc.0 <5.0.0-rc.16
ash_authentication 6e7a880698614887527a87df206b4eb0c0fbd8c1 <4058be0f519c2e9b0d2266e90f9c7d8547d54574

Affected Packages

euvd ash_authentication fix: 5.0.0-rc.16

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

Vendor (EEF) PRIMARY 7.6 HIGH
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
vuln.today AI 8.1 HIGH

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.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
4.0 AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (EEF).

CVSS VectorVendor: EEF

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

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

Why It Matters

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.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

Prevalence
Low
niche Elixir Ash authentication library, only pre-release RC versions affected
Data Quality
5 sources
Confidence: Medium
EUVD NVD CVE.org Vulnrichment GitHub

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS N/A
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

CVE-2026-49757 CRITICAL POC
9.2 Jun 15

Account 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

CVE-2025-25202 MEDIUM POC
6.3 Feb 11

Ash Authentication is an authentication framework for Elixir applications. Rated medium severity (CVSS 6.3), this vulner

CVE-2026-91039 CRITICAL
9.1 Sep 17

Authentication bypass in the Elixir library ash_authentication lets an attacker who operates one federated identity-prov

CVE-2026-88952 CRITICAL
9.1 Sep 17

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

CVE-2026-85500 CRITICAL
9.1 Sep 17

Unconfirmed accounts can obtain an authenticated session in the AshAuthentication Elixir library, defeating the mandator

CVE-2026-86533 CRITICAL
9.1 Sep 17

Revoked sessions continue to be treated as fully authenticated on affected AshAuthentication and AshAuthentication Phoen

CVE-2026-82761 CRITICAL
9.1 Sep 17

Reusing a leaked single-use magic-link token is possible in the Elixir library ash_authentication because its validity c

CVE-2026-82760 HIGH
8.2 Sep 17

Denial of service in the AshAuthentication API-key sign-in strategy lets an unauthenticated, remote attacker exhaust ser

CVE-2026-65633 HIGH
7.6 Aug 25

JWT token replay in AshAuthentication exposes any application using the stateless bearer-token path to full account take

CVE-2026-80218 HIGH
7.6 Sep 17

Authentication bypass in the AshAuthentication library for Elixir/Ash lets an authenticated attacker who holds a valid s

CVE-2026-82685 HIGH
7.6 Sep 17

An authenticated account-takeover primitive exists in the Elixir library AshAuthentication (ash_authentication) versions

CVE-2026-81632 HIGH
7.2 Sep 17

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

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy