Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconIdentify sibling subdomain on shared registrable domain
-
DeliveryCompromise or takeover sibling subdomain
-
ExploitServe response setting shadowing cookies with Domain=.example.com
-
InstallAdmin opens AshAdmin in same browser
-
C2Unanchored regex selects attacker's cookie values
-
ExecuteLiveSocket connects with attacker-controlled actor/tenant/authorization params
-
ImpactAdmin session rebound to arbitrary actor or authorization bypassed
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A08:2025 - Software or Data Integrity Failures
ASVS 5.0
V3 - Web Frontend Security Cookie integrity validation
|
| Exploitation Conditions | Exploitation requires that the attacker control at least one sibling subdomain sharing the same registrable domain as the AshAdmin instance (e.g., both |
| Impact | The CVSS 4.0 score of 8.3 with AT:P (attack requirements present) correctly captures the critical precondition: the attacker must already control a sibling subdomain sharing the same registrable domain as the AshAdmin deployment. This prerequisite meaningfully raises the bar - blind internet scanning cannot trigger this vulnerability. However, once a sibling subdomain is compromised (via a separate XSS, misconfigured S3 bucket with a CNAME, or subdomain takeover), exploitation of this cookie shadowing is trivial and fully automated: inject cookies via a simple HTTP response from the controlled subdomain. The VI:H rating is well-justified - an attacker can pause authorization ( |
| Exploit ScenarioDerived | An attacker identifies a subdomain takeover opportunity on |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAI
Cookie shadowing via unanchored regex in AshAdmin (versions 0.9.1-1.3.0) allows an attacker who controls a sibling subdomain to inject state cookies that rebind an administrator's LiveSocket session to an arbitrary actor, tenant, or authorization mode - effectively bypassing the admin panel's authorization controls. The client-side JavaScript cookie parser used new RegExp(name + "=([^;]+)"), which matches any cookie whose name merely ends with the target name, enabling a shadowing cookie (e.g., xactor_authorizing over actor_authorizing) set from a sibling subdomain with Domain=.example.com to silently win. No public exploit or CISA KEV listing exists at time of analysis, but the integrity impact is high for any multi-subdomain deployment.
RemediationAI
Upgrade ash_admin to version 1.3.1 or later, which resolves the issue via commit e93a3408a85035e1f90275d02bc2470c96095e56 - replacing the unanchored regex cookie parser with exact-equality name matching. The fix is confirmed by the patch diff in the GitHub advisory at https://github.com/ash-project/ash_admin/security/advisories/GHSA-3259-55fp-w94j. If immediate upgrade is not possible, deploy AshAdmin on an entirely separate registrable domain with no sibling subdomains (e.g., admin.dedicated-domain.com rather than admin.example.com), which eliminates the shared document.cookie scope that enables the attack - trade-off is DNS and certificate management overhead. Additionally, audit all subdomains under the shared registrable domain for subdomain takeover risks (dangling CNAMEs, unclaimed cloud buckets) to remove the attacker's cookie-injection vector. Restricting AshAdmin access to authenticated VPN or IP allowlists reduces exposure but does not eliminate the vulnerability if a VPN user's browser is compromised via a sibling subdomain.
Affected VersionsENISA
Affected Packages
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 an admin panel library for the Ash Framework, a resource-based application development framework for Elixir/Phoenix. The flaw resides in client-side JavaScript (assets/js/app.js and its compiled bundle priv/static/assets/app.js) where a helper function parses session state from document.cookie using new RegExp(name + "=([^;]+)"). This unanchored regex matches any cookie whose name suffix equals the target name. Browsers expose all cookies scoped to the registrable domain (e.g., example.com) via document.cookie, so a cookie set with Domain=.example.com from any sibling subdomain is visible. An attacker on evil.example.com can therefore set xactor_authorizing=false with broad domain scope, which the unanchored regex resolves first when AshAdmin reads actor_authorizing. The seven affected cookie names - tenant, actor_resource, actor_primary_key, actor_action, actor_domain, actor_authorizing, actor_paused - are passed as LiveSocket connect params, so their compromise directly influences authorization and impersonation logic. CWE-565 (Reliance on Cookies without Validation and Integrity Checking) is the precise root cause class: the application trusts cookie values without verifying their origin or name integrity. The fix (commit e93a3408) replaces the regex with a deterministic linear scan comparing cookie names by strict string equality (cookies[i].slice(0, eq) === name).
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
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:H/VA:N/SC:N/SI:N/SA:N
AC:H reflects the required sibling subdomain compromise prerequisite; VI:H from session rebinding; VC:L from incidental cookie value exposure; no authentication needed on AshAdmin itself.
Primary rating from Vendor (EEF).
CVSS VectorVendor: EEF
DescriptionCVE.org
Reliance on Cookies without Validation and Integrity Checking vulnerability in ash-project ash_admin lets an attacker who controls a sibling subdomain rebind an admin's session to a different actor, tenant, or authorization mode.
AshAdmin's client JavaScript read its state cookies (tenant, actor_resource, actor_primary_key, actor_action, actor_domain, actor_authorizing, actor_paused) by matching the cookie name with an unanchored regular expression (new RegExp(name + "=([^;]+)")) against the whole document.cookie. Any cookie whose name merely ends with the requested name therefore matches, and whichever is serialized first wins. Because cookies are shared across a registrable domain, a compromised sibling subdomain can set a shadowing cookie (for example xactor_authorizing) with Domain=.example.com that flows unvalidated into the admin's LiveSocket connect params. The fix matches cookie names by exact equality.
This issue affects ash_admin: from 0.9.1 before 1.3.1.
Technical POC Analysis
CWE-565 (Reliance on Cookies without Validation and Integrity Checking).
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Stored XSS in ash_admin's relationship typeahead components allows an attacker with low-privilege record-creation access
Arbitrary file write via path traversal in AshAdmin's file upload handler affects versions 0.13.7 through 1.3.0, enablin
Atom table exhaustion in ash_admin's Phoenix LiveView event handlers allows any authenticated user reaching the admin in
Composite primary key decoding in AshAdmin (ash_admin) versions 0.1.0 through 1.3.0 can be abused by authenticated users
AshAdmin shipped a compile-time constant string ('ash_admin-Ed55GFnX') as the default CSP nonce for inline script and st
AshAdmin's Table, DataTable, and Show LiveView components constructed row-action URLs via raw Elixir string interpolatio
EUVD-2026-68324
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB