Skip to main content

AshAdmin CVE-2026-82681

| EUVDEUVD-2026-68327 LOW
Improper Encoding or Escaping of Output (CWE-116)
2026-08-31 EEF
2.0
CVSS 4.0 · Vendor: EEF
View

Attack ChainAIDerived

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

  1. Recon
    Attacker stores crafted string primary key containing injected query parameters
  2. Delivery
    Record persists in database awaiting admin interaction
  3. Exploit
    Admin navigates to AshAdmin resource list or show view
  4. Install
    Admin clicks row-action link (e.g., Edit) for the crafted record
  5. C2
    Browser follows URL with last-wins parameter override substituting action_type
  6. Execute
    Admin is presented with unintended action form (e.g., Destroy instead of Edit)
  7. Impact
    Admin 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 (&, #, or =); this could be a registered user setting their own profile slug, a content author choosing a post slug, or any other user-facing string identifier. Third, an AshAdmin operator must actively click a row-action link on the affected record in the Table, DataTable, or Show component (CVSS UI:A), as the attack depends on administrator interaction with the prepared record. Limiting factors: integer primary keys provide complete protection without any configuration change; the attacker cannot directly trigger the unintended action and must rely on an administrator clicking the crafted link; and the impact is limited to misdirected admin actions rather than direct data exfiltration or code execution.

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 legitimate-slug&action_type=destroy. When an AshAdmin operator subsequently views the resource data table and clicks the 'Edit' row-action link for that record, the injected action_type=destroy parameter - resolved last by Plug.Conn.Query - overrides the intended action_type=update, silently presenting the administrator with the destroy confirmation form instead of the edit form. No public exploit code has been identified; the attack requires only knowledge of the AshAdmin URL structure and write access to a string-keyed Ash resource.

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

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

Alert me

AnalysisAI

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

ash_admin 0.3.0-rc.0 <1.3.1
ash_admin b214535f0cc012e36ca621e643bf8f7b133ba354 <8e8ef91e8ba07498053887c6212f8b0f08178df6

Affected Packages

euvd ash_admin fix: 1.3.1

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

Vendor (EEF) PRIMARY 2.0 LOW
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
vuln.today AI 3.5 LOW

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.

3.1 AV:N/AC:L/PR:L/UI:R/S:U/C:N/I:L/A:N
4.0 AV:N/AC:L/AT:P/PR:L/UI:A/VC:N/VI:L/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
Active
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
Low
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

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

EPSS Score
0.3%
Top 81% exploitable
Prevalence
Rare
niche Elixir admin framework, limited enterprise footprint
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GitHub VulDB

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.3%
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

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

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