Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconAttacker stores crafted string primary key containing injected query parameters
-
DeliveryRecord persists in database awaiting admin interaction
-
ExploitAdmin navigates to AshAdmin resource list or show view
-
InstallAdmin clicks row-action link (e.g., Edit) for the crafted record
-
C2Browser follows URL with last-wins parameter override substituting action_type
-
ExecuteAdmin is presented with unintended action form (e.g., Destroy instead of Edit)
-
ImpactAdmin may inadvertently confirm destructive or unintended operation
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding for downstream
|
| Exploitation Conditions | Three concurrent conditions are required for exploitation. First, the targeted Ash resource must use a string primary key - slug, email, or any other user-settable string field - rather than an auto-increment integer; integer-keyed resources are entirely unexploitable. Second, the attacker must have write access sufficient to create or modify a record with a crafted primary key value containing query-string metacharacters ( |
| Impact | The CVSS 4.0 score of 2.0 with vector AV:N/AC:L/AT:P/PR:L/UI:A/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N accurately reflects the constrained real-world impact: no confidentiality impact, low integrity impact limited to action misdirection, and two hard prerequisites - a crafted string primary key already persisted in the database (AT:P) and an active administrator click (UI:A). No EPSS score is available in the provided data. There is no CISA KEV listing and no public exploit code has been identified at time of analysis. Despite the low numeric score, the operational risk in multi-tenant or externally-writable Ash deployments is non-trivial: a crafted primary key silently converts an admin's 'Edit' click into a 'Destroy' action without any additional confirmation depending on the Ash action configuration, potentially enabling unauthorized record deletion through the admin interface. Environments using integer auto-increment primary keys are entirely unaffected. The input 'RCE' tag is unsupported by any available data - the CVSS vector (VI:L, VC:N), CWE-116, and the vulnerability description all confirm a parameter injection with no code execution pathway. |
| Exploit ScenarioDerived | An attacker with write access to a content or user resource that uses a string primary key creates a record whose key value is |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAI
AshAdmin's Table, DataTable, and Show LiveView components constructed row-action URLs via raw Elixir string interpolation, splicing unencoded record primary keys directly into query strings. Attackers who control a record's string primary key - common in Ash applications using slugs or email addresses as identifiers - can craft a key containing query-string metacharacters (e.g., legitimate-slug&action_type=destroy) that override URL parameters when an administrator clicks a row-action link, silently redirecting them to an unintended action such as resource destruction. No public exploit code has been identified at time of analysis; exploitation requires write access to a string-keyed Ash resource and active administrator interaction, affecting ash_admin 0.3.0-rc.0 through 1.3.0.
RemediationAI
Upgrade ash_admin to version 1.3.1 or later, which is the vendor-released patch confirmed by the advisory GHSA-j89q-xjrh-c26p at https://github.com/ash-project/ash_admin/security/advisories/GHSA-j89q-xjrh-c26p and the fix commit at https://github.com/ash-project/ash_admin/commit/8e8ef91e8ba07498053887c6212f8b0f08178df6. If immediate upgrade is not feasible, a compensating control is to enforce strict alphanumeric-only validation on all string primary key fields at the Ash resource layer using custom changesets, blocking injection of &, #, and = metacharacters; this requires application code changes and may break existing slug or email-based key patterns. Alternatively, temporarily restrict AshAdmin interface access to a highly trusted network segment, reducing the probability that an administrator interacts with attacker-crafted records. Neither workaround eliminates the root encoding defect and both carry trade-offs in usability or availability of the admin panel.
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
AshAdmin is a Phoenix LiveView-based administrative dashboard for the Ash framework, an Elixir resource management library. The vulnerability (CWE-116: Improper Encoding or Escaping of Output) resided in three LiveView components - DataTable, Table, and Show - which constructed navigation URLs via Elixir interpolated strings, for example "#{@prefix}?domain=...&primary_key=#{encode_primary_key(record)}&action_type=read". Because Ash natively supports string primary keys (emails, slugs, arbitrary user-supplied values), the raw key value was written into the query string without encoding. Plug.Conn.Query, Elixir's standard query-string parser, applies last-wins semantics for duplicate parameter keys; since primary_key was the final interpolated segment, a stored key such as foo&action_type=destroy would inject a second action_type parameter overriding the intended value. A # character in the key value truncated the entire query string into a browser fragment, causing additional parameter loss. The commit-confirmed fix (8e8ef91) replaces all string interpolation instances with admin_path/2, which routes all values through URI.encode_query/1. Affected CPE: cpe:2.3:a:ash-project:ash_admin:*:*:*:*:*:*:*:* for versions 0.3.0-rc.0 through 1.3.0.
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:P/PR:L/UI:A/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
Attacker needs low privileges to set a crafted primary key; admin click required (UI:R); integrity-only impact from action misdirection with no confidentiality or availability effect.
Primary rating from Vendor (EEF).
CVSS VectorVendor: EEF
DescriptionCVE.org
Improper Encoding or Escaping of Output vulnerability in ash-project ash_admin lets an attacker who controls a record's string primary key rewrite the target of AshAdmin's row-action links.
The Table, DataTable, and Show components built row-action URLs by raw string interpolation, splicing the primary key (and table, domain, and resource names) into the query string without URL-encoding. Ash resources routinely use user-settable string primary keys (slugs, emails). Because Plug.Conn.Query resolves duplicate parameters last-wins and primary_key is interpolated last, a stored key such as foo&action_type=destroy injects parameters that override the link, so an admin clicking edit is sent to a destroy form or an arbitrary resource; a
truncates the query into a fragment. The fix builds every link with URI.encode_query/1, encoding all interpolated values.
This issue affects ash_admin: from 0.3.0-rc.0 before 1.3.1.
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
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
Stored XSS in ash_admin's relationship typeahead components allows an attacker with low-privilege record-creation access
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
EUVD-2026-68327
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB