Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconAttacker creates record with XSS payload in label_field
-
DeliveryPayload persists in database
-
ExploitAdmin opens AshAdmin relationship field
-
InstallTypeahead search returns malicious record
-
C2label_field rendered unescaped via raw/1
-
ExecutePayload executes in admin browser
-
ImpactAdmin session credentials exfiltrated
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 | Two concrete prerequisites must be met: (1) the attacker holds write access to create or modify records in a resource configured as a relationship target within AshAdmin - this is the PR:L condition in the CVSS 4.0 vector, meaning any application-level account with record-creation rights qualifies; and (2) an administrator actively uses the AshAdmin relationship typeahead and the malicious record appears in the search results - the UI:A condition requiring the admin to perform an action rather than merely load a page. The vulnerability is scoped to ash_admin versions 0.13.0 through 1.3.1; deployments on 1.3.1 or later are not affected. Exploitation is limited to the AshAdmin web interface specifically; the underlying Ash framework data layer is not directly affected. Environments where all record-creation access is gated to administrator-level accounts are at substantially reduced risk, since the attacker would already hold equivalent privileges to the victim. |
| Impact | The CVSS 4.0 score of 8.4 (High) accurately captures the primary risk signals: network-reachable (AV:N), low complexity (AC:L), low privilege required (PR:L - any user able to create records), and active admin interaction needed (UI:A). The high confidentiality and integrity impact on the vulnerable system (VC:H/VI:H) reflects that the admin session, once compromised, exposes full control over the AshAdmin interface. The stored nature of the payload is a key risk multiplier: unlike reflected XSS, the attacker plants the payload once and waits, with no need for phishing or race conditions. The vulnerability is not in CISA KEV and no public exploit code has been identified, which lowers immediate exploitation pressure. EPSS data was not provided; exploitation probability is inferred as moderate given the low technical bar - any developer-familiar attacker who can create records and understands Phoenix HTML rendering could exploit this without specialized tooling. Environments where only trusted administrators can create records are at materially lower risk, as the attacker and victim would need to share privilege level. No conflicts between data signals are apparent; the CVSS vector is consistent with the described attack path. |
| Exploit ScenarioDerived | A lower-privileged application user creates a record whose label field contains a crafted XSS payload - for example, a username or title set to |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAI
Stored XSS in ash_admin's relationship typeahead components allows an attacker with low-privilege record-creation access to execute arbitrary JavaScript in an administrator's browser. Affected are ash_admin versions 0.13.0 through 1.3.1, where the RelationshipField and ManagedRelationshipSelectField components render database record label fields unescaped via Phoenix.HTML.raw/1 after applying search-term highlight markup. A crafted label such as <img src=x onerror=...> persists in the database and fires whenever an admin's typeahead dropdown displays the matching record, granting the attacker full admin-level privileges over everything AshAdmin exposes. No public exploit code has been identified at time of analysis; a vendor-released patch is available in version 1.3.1.
RemediationAI
Upgrade ash_admin to version 1.3.1 or later, which contains the fix introduced in commit 07289191ccdac27dd70ab7c6413ed057bc7fdade; the vendor advisory is at https://github.com/ash-project/ash_admin/security/advisories/GHSA-m23x-576h-73w8. If an immediate upgrade is not feasible, the most effective compensating control is to restrict record-creation permissions so that only fully trusted administrators can write to resources exposed as relationship targets in AshAdmin, eliminating the lower-privileged attacker foothold; the trade-off is that this may break intended workflows where end users contribute data. Alternatively, placing AshAdmin behind a network boundary accessible only to administrators (e.g., VPN-gated or internal-only route) reduces attack surface by ensuring no lower-privileged external user can plant a payload, though it does not eliminate risk from insider threats. There is no known way to disable only the affected typeahead highlight behavior without patching.
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
ash_admin is an admin web interface for the Elixir Ash framework, built on Phoenix LiveView. The affected components - AshAdmin.Components.Resource.RelationshipField and AshAdmin.Components.Resource.ManagedRelationshipSelectField (CPE: cpe:2.3:a:ash-project:ash_admin) - power typeahead dropdowns used when editing relationship fields. Phoenix LiveView normally HTML-escapes all template interpolations automatically; however, the highlighting logic retrieved the destination record's label_field, applied a regex replace to wrap the matched search term in <b> tags, and passed the resulting string directly to Phoenix.HTML.raw/1. Calling raw/1 marks a value as safe and disables all output escaping for it, meaning any HTML or JavaScript embedded in the label field is emitted verbatim into the DOM. The root cause is CWE-79 (Improper Neutralization of Input During Web Page Generation - Cross-site Scripting): user-controlled database content was trusted as markup without sanitization. The fix, visible in commit 07289191ccdac27dd70ab7c6413ed057bc7fdade, introduces Phoenix.HTML.html_escape/1 and Phoenix.HTML.safe_to_string/1 on the label before the regex replace, ensuring special characters are neutralized before highlight <b> tags are injected.
Know when Ash Admin 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:N/PR:L/UI:A/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
Stored XSS escalating attacker's limited session to full admin context constitutes scope change (S:C); PR:L reflects required record-creation access; UI:R for the admin's typeahead interaction.
Primary rating from Vendor (EEF).
CVSS VectorVendor: EEF
DescriptionCVE.org
Stored Cross-site Scripting vulnerability in ash-project ash_admin executes attacker-supplied record content as script in an administrator's browser.
The relationship typeahead components AshAdmin.Components.Resource.RelationshipField and AshAdmin.Components.Resource.ManagedRelationshipSelectField highlight the matched search term by wrapping it in <b> tags and rendering the whole string with Phoenix.HTML.raw/1. The highlighted value is the destination record's label_field, ordinary database content that is often written by lower-privileged users. Because raw/1 disables output escaping for the entire string, a stored label such as <img src=x onerror=...> runs as JavaScript in the admin's session as soon as a matching record appears in the dropdown, giving the attacker the admin's privileges over everything AshAdmin exposes. The fix HTML-escapes the label before inserting the highlight markup.
This issue affects ash_admin: from 0.13.0 before 1.3.1.
Technical POC Analysis
CWE-79 (Improper Neutralization of Input During Web Page Generation).
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
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
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
Arbitrary file write via path traversal in AshAdmin's file upload handler affects versions 0.13.7 through 1.3.0, enablin
Cookie shadowing via unanchored regex in AshAdmin (versions 0.9.1-1.3.0) allows an attacker who controls a sibling subdo
Atom table exhaustion in ash_admin's Phoenix LiveView event handlers allows any authenticated user reaching the admin in
Composite primary key decoding in AshAdmin (ash_admin) versions 0.1.0 through 1.3.0 can be abused by authenticated users
AshAdmin shipped a compile-time constant string ('ash_admin-Ed55GFnX') as the default CSP nonce for inline script and st
AshAdmin's Table, DataTable, and Show LiveView components constructed row-action URLs via raw Elixir string interpolatio
EUVD-2026-68326
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB