Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessInitiate victim sign-in to generate sign-in JWT
-
DeliveryIntercept not-yet-exchanged sign-in token via log/referrer/delivery channel
-
ExploitSubmit token as Authorization: Bearer header to protected API route
-
ExecutionPass signature verification and act-claim check in retrieve_from_bearer
-
Persistpurpose claim never validated against "user"
-
ImpactResolve as fully authenticated current_user session
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Authentication mechanism validation
MITRE ATT&CK
2 techniques across 2 tactics: Defense Evasion, Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires three simultaneous conditions: (1) the host application must wire up |
| Impact | The CVSS 4.0 score of 7.6 (AV:N/AC:H/AT:P/PR:N/UI:P) accurately reflects the constrained but non-trivial attack surface. High complexity (AC:H) and a specific precondition (AT:P) are warranted: the attacker must obtain a still-valid, not-yet-exchanged sign-in token before it is consumed. This is a realistic but targeted threat - the window of opportunity is the token's lifetime between issuance and first use. The requiring of user interaction (UI:P) reflects that a legitimate user must initiate the sign-in flow that generates the interceptable token. Confidentiality and integrity impacts are High (VC:H/VI:H) since successful exploitation yields a fully authenticated current_user session, enabling the attacker to act as the victim with all their application privileges. There is no availability impact. No CISA KEV listing and no public exploit code identified - this is not currently mass-exploited. However, the vulnerability is particularly dangerous in applications using WebAuthn, because sign-in tokens are always issued in that flow, broadening the exposure compared to the opt-in Password strategy case. Applications scaffolded by Igniter since v4.5.0 with |
| Exploit ScenarioDerived | An attacker targeting a user who has initiated a WebAuthn sign-in flow intercepts the resulting sign-in JWT before it is consumed - for example by capturing it from a server access log, an HTTP Referer header, or a compromised email or SMS delivery channel for a magic link. The attacker then presents this token in an |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 25, 2026
JWT token replay in AshAuthentication exposes any application using the stateless bearer-token path to full account takeover using purpose-scoped tokens. The retrieve_from_bearer/3 helper in versions 3.10.5-4.14.2 and 5.0.0-rc.0-5.0.0-rc.13 verifies JWT signatures and rejects tokens with an act claim, but never validates that the token's purpose claim equals "user", allowing sign-in, remember-me, and TOTP-setup tokens to be silently accepted as full bearer credentials. No public exploit has been identified at time of analysis, but the attack requires only obtaining a still-valid, not-yet-exchanged sign-in token - a realistic threat surface via log leakage, referrer exposure, or intercepted magic-link delivery.
RemediationAI
Upgrade ash_authentication to 4.14.2 (for the 3.x/4.x series) or 5.0.0-rc.13 (for the 5.x release candidates), which introduce the usable_as_bearer_token?/1 guard in retrieve_from_bearer/3 that rejects any token whose purpose claim is set to a value other than nil or "user". The upstream fix commits are 8cf8b2d4426172be0900a3505e9491800b951750 and 124eddd1bbeb40289c3fe8831ac10677a19fcf09 on the team-alembic/ash_authentication GitHub repository. As an immediate workaround for applications that cannot upgrade, set require_token_presence_for_authentication?: true on all resources that use bearer-token authentication - this forces the validate_token/3 helper to consult the token store and enforce purpose == "user", eliminating the vulnerable stateless path. Note that this workaround requires a functioning token resource (database-backed token store) and will cause {:ok, nil} to become an authentication failure for any stateless deployments, which may affect integrations that rely on the stateless mode. The ERLEF CNA page at https://cna.erlef.org/cves/CVE-2026-65633.html and OSV record at https://osv.dev/vulnerability/EEF-CVE-2026-65633 provide additional remediation context.
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 Elixir authentication library for applications built on the Ash Framework and Phoenix. It issues JWTs with a purpose claim to scope tokens to specific, narrow flows: sign_in (issued by WebAuthn always, and by the Password strategy when sign_in_tokens_enabled?: true), remember_me, totp_setup, and others. The intended contract is that a sign-in token must be presented once to a dedicated preparation that validates purpose == sign_in and immediately revokes it before issuing a general-purpose user token. The retrieve_from_bearer/3 plug helper verifies the JWT signature and rejects tokens with an act (nested action delegation) claim, but never checks the purpose claim against the value user. When require_token_presence_for_authentication?: false (the DSL default), the validate_token/3 helper returns {:ok, nil} without consulting the token store, so no downstream enforcement of purpose occurs either. The root cause is CWE-287: the bearer boundary accepts credentials that are cryptographically valid but semantically out-of-scope, defeating the one-time-use and revocation semantics of purpose-scoped tokens. Affected CPE: cpe:2.3:a:team-alembic:ash_authentication.
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:H/AT:P/PR:N/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
Network-exploitable but AC:H because attacker must intercept a short-lived unexpired sign-in token; UI:R because a victim must initiate the sign-in flow that generates it; PR:N since the stolen token itself is the credential; C:H/I:H for full session takeover; A:N as no availability impact described.
Primary rating from Vendor (EEF).
CVSS VectorVendor: EEF
DescriptionCVE.org
Improper Authentication vulnerability in team-alembic AshAuthentication allows purpose-limited JWTs to be replayed as full bearer API credentials when a resource uses stateless bearer-token verification.
The bearer-token authentication helper AshAuthentication.Plug.Helpers.retrieve_from_bearer/3 verifies an Authorization: Bearer JWT's signature and rejects tokens containing an act claim, but performs no check that the token's purpose claim equals user at the bearer boundary. When the resource is configured with require_token_presence_for_authentication?: false (the DSL default), the follow-on validate_token/3 helper returns {:ok, nil} without consulting the token resource, so no downstream check on purpose takes place either. As a result, any valid, non-expired JWT the library itself issued for a narrow, single-purpose flow (most notably the purpose: sign_in token that WebAuthn always emits during sign-in, and that the Password strategy emits when sign-in tokens are enabled) is accepted directly as a general-purpose bearer credential and resolves to a full current_user assignment.
This bypasses the library's intended token-exchange contract, in which the sign_in token is meant to be presented exactly once to a preparation that validates the purpose claim and immediately revokes the token. The first use of a still-valid sign-in token presented directly in the Authorization header succeeds because the stateless bearer path never scopes it to purpose == "user".
An attacker who obtains a not-yet-exchanged sign-in token for a target subject (for example via log or referrer leakage, an intercepted magic-link delivery channel, or a partially compromised intermediary) can present it as a bearer token and be authenticated as that subject, fully bypassing the intended one-time-use and revocation semantics. Exploitation additionally requires that the host application wire up retrieve_from_bearer/3 on a reachable route and uses either WebAuthn (sign-in tokens are always issued) or the Password strategy with sign_in_tokens_enabled?: true. Resources configured with require_token_presence_for_authentication?: true (including applications scaffolded by the Igniter installer since v4.5.0) and the session-based path (authenticate_resource_from_session/4) enforce purpose == "user" against the stored token record and are not affected.
This issue affects ash_authentication: from 3.10.5 before 4.14.2 and from 5.0.0-rc.0 before 5.0.0-rc.13.
Executive ViewAI
AshAuthentication versions 3.10.5-4.14.2 and 5.0.0-rc.0-5.0.0-rc.13 fail to validate JWT token purpose claims, allowing attackers to repurpose sign-in and password-reset tokens as valid bearer credentials for full account takeover. No public exploit has been identified at time of analysis; however, the attack requires only intercepting still-valid sign-in tokens, a realistic threat via log leakage or magic-link interception. Organizations using stateless bearer-token authentication expose all customer accounts to credential theft.
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
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
AshAuthentication's token-revocation action accepts forged JWTs without verifying their signature, letting an unauthenti
EUVD-2026-65322
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB