Am I affected?
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.
Weaknesses & attack patterns
Weakness
CWE-116
·
Improper Encoding or Escaping of Output
in catalog →
MITRE ↗
Attack patterns
CAPEC-460
·
HTTP Parameter Pollution (HPP)
MITRE ↗
Affected — Hex / ash_admin Hex.pm ↗ Repository ↗
modules · source files
Affected — GitHub / ash-project/ash_admin Repository ↗
modules · source files
References
Credits
CVSS breakdown
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