ZeroHour

CVE-2026-77850

niche

Stored XSS in AshAdmin typeahead lets low-privilege users hijack admin sessions

CVSS 4.0
8.4 high
EPSS
<1%p20
Published
()
Modified
AI analysis

CVE-2026-77850 is a stored cross-site scripting flaw (CWE-79) in AshAdmin, the admin dashboard for the Elixir Ash Framework, affecting versions from 0.13.0 before 1.3.1. The relationship typeahead components AshAdmin.Components.Resource.RelationshipField and AshAdmin.Components.Resource.ManagedRelationshipSelectField highlight the matched search term by wrapping it in tags and rendering the entire label string through Phoenix.HTML.raw/1, which disables HTML output escaping; the rendered label is the destination record's label_field, ordinary database content that lower-privileged users can often write. When an administrator uses the typeahead and a matching record whose label contains injected markup appears in the dropdown, the injected JavaScript executes in the admin's browser session, giving the attacker the admin's privileges over everything AshAdmin exposes. Any application running an affected ash_admin version where untrusted or low-privilege users can influence a related record's label_field and administrators use these relationship components is affected. No public proof-of-concept is known, it is not in CISA KEV, and EPSS estimates roughly a 0.3% probability of exploitation within 30 days (20th percentile).

What to do: Upgrade ash_admin to 1.3.1 or later, which HTML-escapes the label before inserting the highlight markup. Until then, restrict write access to fields used as label_field on related records, keep AshAdmin on internal or access-restricted networks, and have administrators avoid the relationship typeahead/managed-relationship selects for records whose labels can be set by lower-privileged users. Treat any stored markup in label fields as potentially executable in an admin's browser session.

Affected
ash-project ash_adminfrom 0.13.0 before 1.3.1 (fixed in 1.3.1)
Estimated exposure
nichelikely hundreds, possibly up to low thousands, of applications; exact count unknown (no public install counts) — AshAdmin is an optional admin dashboard adopted by only a subset of applications built on the Ash Framework within the relatively small Elixir/Phoenix ecosystem, and such panels are typically deployed internally or behind authentication,…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

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

Weakness
CWE-79
Vector
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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

In the news

No ingested article mentions this CVE yet.