Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify HTML injection sink in admin resource view
-
DeliveryInject script tag with nonce='ash_admin-Ed55GFnX'
-
ExploitAdmin user visits affected page
-
ExecutionBrowser validates nonce against CSP allowlist containing known constant
-
ImpactInline script executes, bypassing CSP
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A04:2025 - Cryptographic Failures
ASVS 5.0
V11 - Cryptography Cryptographic random values
|
| Exploitation Conditions | Exploitation requires all of the following conditions simultaneously: (1) ash_admin version 0.10.8 through 1.3.0 mounted without :csp_nonce_assign_key, so the constant 'ash_admin-Ed55GFnX' is emitted verbatim as the nonce attribute; (2) the host application's Content-Security-Policy explicitly allow-lists the nonce 'ash_admin-Ed55GFnX' in script-src or style-src - only deployments that followed the old documentation and embedded this constant in their CSP header are at risk; (3) an independent HTML injection sink exists on an admin-accessible page; and (4) an authenticated admin user actively visits the page containing the injected payload. Applications that do not use a nonce-based CSP, that never referenced the published constant in their policy, that supply a custom :csp_nonce_assign_key, or that are running ash_admin 1.3.1 or later are not vulnerable. |
| Impact | The CVSS 4.0 score of 2.1 accurately reflects a low-priority vulnerability that requires multiple conditions to be simultaneously true. The AT:P (attack requirements present) metric captures that exploitation depends on an application using the default nonce configuration without :csp_nonce_assign_key, the host application's CSP explicitly allow-listing the published constant, and an independently exploitable HTML injection sink existing on the admin surface. The UI:A (active user interaction) metric further requires an authenticated admin to visit the affected page. There is no CISA KEV listing and no public exploit, making this a theoretical CSP bypass rather than an immediately actionable threat. The low VC:L and VI:L impact metrics reflect that successful exploitation enables inline script execution within the admin context but does not directly imply full account takeover or data exfiltration on its own. Real-world exposure is additionally bounded by ash_admin's niche deployment footprint within the Elixir ecosystem. Organizations running affected versions should include the upgrade to 1.3.1 in their next routine dependency update cycle; the compound conditions required mean emergency patching is not warranted unless the application is confirmed to simultaneously have an HTML injection vulnerability and a CSP that explicitly references the published constant. |
| Exploit ScenarioDerived | An attacker who can inject HTML into an admin-facing resource view (via a separate stored-XSS or template injection vulnerability in a field rendered by AshAdmin) crafts a script element with nonce='ash_admin-Ed55GFnX'. When an authenticated admin visits the affected page, the browser validates the nonce against the CSP allow-list, finds a match due to the hardcoded constant, and executes the injected script - bypassing the CSP protection that was intended to block unauthorized inline scripts. No public proof-of-concept is known. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAI
AshAdmin shipped a compile-time constant string ('ash_admin-Ed55GFnX') as the default CSP nonce for inline script and style tags across all requests in versions 0.10.8 through 1.3.0, rendering nonce-based Content-Security-Policy enforcement completely ineffective for any application using the default configuration. Applications that adopted the documented default and explicitly allow-listed this published constant in their CSP script-src directive would have their CSP protection neutralized by any attacker able to inject HTML into an admin page. No active exploitation or public proof-of-concept has been identified; the CVSS 4.0 score of 2.1 reflects significant compound preconditions required for exploitation.
RemediationAI
Upgrade ash_admin to version 1.3.1 or later, which is confirmed by the vendor advisory GHSA-whfj-rrrp-j597 and the patch commit at https://github.com/ash-project/ash_admin/commit/bc7a1cdf873b16971a8efec35d085f8bb706314f. For applications that cannot immediately upgrade, the preferred compensating control is to explicitly set the :csp_nonce_assign_key option in AshAdmin.Router.ash_admin/2 to an assign key holding a per-request random nonce generated by the host application, overriding the static default. A secondary compensating control is to remove the literal string 'ash_admin-Ed55GFnX' from any CSP allow-list, which eliminates the bypass surface at the cost of breaking existing inline asset rendering until the upgrade is applied. Applications that never configured a nonce-based CSP or that never include the published constant in their policy are not at risk from this specific issue.
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 administrative interface library built on Phoenix LiveView for Elixir applications using the Ash resource framework, identified by CPE cpe:2.3:a:ash-project:ash_admin. Content Security Policy nonces are per-request unpredictable values that allow inline scripts and styles to execute while blocking injected content; their security guarantee collapses entirely if the nonce is a publicly known constant. The vulnerable code in AshAdmin.Layouts and AshAdmin.Router defaulted img, style, and script nonces to the compile-time literal 'ash_admin-Ed55GFnX', which was documented and visible in the public repository. CWE-330 (Use of Insufficiently Random Values) captures this root cause: a value whose security depends on unpredictability was instead a fixed, discoverable constant. The patch at commit bc7a1cdf replaces the static constant with a per-request :crypto.strong_rand_bytes(18) value encoded via Base.url_encode64, and sets the router default to nil so AshAdmin.Layouts generates a fresh random nonce at render time rather than falling back to the legacy string.
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:A/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N
AC:H reflects compound preconditions (HTML injection sink, CSP allow-listing the published nonce, admin interaction required); no attacker authentication required.
Primary rating from Vendor (EEF).
CVSS VectorVendor: EEF
DescriptionCVE.org
Use of Insufficiently Random Values vulnerability in ash-project ash_admin ships a hardcoded, publicly known CSP nonce, defeating nonce-based Content-Security-Policy protection.
When mounted without :csp_nonce_assign_key, AshAdmin.Router.ash_admin/2 defaulted the img, style, and script nonces to the literal constant ash_admin-Ed55GFnX, which AshAdmin.Layouts wrote verbatim into the nonce attribute of its inline <style> and <script> tags on every response. The value is a compile-time constant published in the repository and is never rotated per request. If an application's CSP script-src allow-lists that documented default, any HTML-injection sink on an admin page can reuse the known nonce to run inline scripts the policy was meant to block. The fix generates a fresh random nonce per request.
This issue affects ash_admin: from 0.10.8 before 1.3.1.
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
Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.
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
Cookie shadowing via unanchored regex in AshAdmin (versions 0.9.1-1.3.0) allows an attacker who controls a sibling subdo
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's Table, DataTable, and Show LiveView components constructed row-action URLs via raw Elixir string interpolatio
EUVD-2026-68328
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB