Description
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.
Published: 2026-08-31
Score: 2 Low
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Improper encoding of URL query components in the AshAdmin components allows an attacker who controls a record’s string primary key to craft malicious keys such as foo&action_type=destroy. When the key is interpolated into a row-action link without URL‑encoding, the query string becomes malformed and the duplicate parameters are resolved by the last‑wins rule. This allows the attacker to overwrite admin‑provided parameters, redirecting an admin’s click from an edit action to a destroy form or other arbitrary resource. The vulnerability is a classic instance of CWE‑116 that can lead to unauthorized destructive actions against the system.

Affected Systems

The flaw is present in the ash-admin project, affecting all released versions from 0.3.0‑rc.0 through before 1.3.1. The problematic modules are the Table, DataTable, and Show components that build row‑action URLs by raw string interpolation.

Risk and Exploitability

The CVSS score of 2.0 indicates a low severity impact, and the EPSS score is not available at present. The issue is not listed in the CISA KEV catalog. The attack requires the attacker to have the ability to create or otherwise control a record with a crafted string primary key, which could be achieved via the application’s own CRUD facilities or an API. Once the key is in place, an unsuspecting administrator is likely to be redirected to an unintended action, potentially leading to unauthorized deletion or other destructive operations. The exploit is straightforward and does not require complex prerequisites, but because it requires the admin to click a link, its likelihood of use may be limited to targeted or socially engineered scenarios.

Generated by OpenCVE AI on August 31, 2026 at 03:21 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade ash-admin to version 1.3.1 or later, wherein all row-action links are constructed with URI.encode_query/1 to ensure proper encoding of all parameters.
  • If an immediate upgrade is impossible, enforce strict validation on all user‑settable string primary keys, allowing only characters that will not interfere with query string parsing such as alphanumerics and hyphens, and reject or escape any instances of '&', '=', or '#'.
  • Restrict the ability to create records with arbitrary primary keys to trusted users or processes, and audit any records that contain potentially dangerous characters.

Generated by OpenCVE AI on August 31, 2026 at 03:21 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 31 Aug 2026 02:45:00 +0000

Type Values Removed Values Added
Description 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.
Title Query-parameter injection in AshAdmin row-action links via unencoded string primary keys
First Time appeared Ash-project
Ash-project ash Admin
Weaknesses CWE-116
CPEs cpe:2.3:a:ash-project:ash_admin:*:*:*:*:*:*:*:*
Vendors & Products Ash-project
Ash-project ash Admin
References
Metrics cvssV4_0

{'score': 2, 'vector': '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'}


Subscriptions

Ash-project Ash Admin
cve-icon MITRE

Status: PUBLISHED

Assigner: EEF

Published:

Updated: 2026-08-31T02:26:05.357Z

Reserved: 2026-08-30T23:15:02.375Z

Link: CVE-2026-82681

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-31T03:16:43.643

Modified: 2026-08-31T03:16:43.643

Link: CVE-2026-82681

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-31T03:30:05Z

Weaknesses
  • CWE-116

    Improper Encoding or Escaping of Output