Am I affected?
Description
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.
Weaknesses & attack patterns
Weakness
CWE-79
·
Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
in catalog →
MITRE ↗
Attack patterns
CAPEC-592
·
Stored XSS
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:N/PR:L/UI:A/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N