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/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
Admin credentials required (PR:H), victim must visit affected control panel page (UI:R), and payload executes across user sessions triggering a scope change (S:C).
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
Craft CMS 4.x (>= 4.0.0-RC1, < 4.17.0-beta.1) and 5.x (>= 5.0.0-RC1, < 5.9.0-beta.1) contain multiple stored cross-site scripting vulnerabilities where settings names and field option labels are rendered without sanitization (e.g., via the checkbox.twig template, which used {{ label|raw }}). An authenticated administrator (with allowAdminChanges enabled) can inject malicious payloads into section names, volume names, user group names, global set names, generated field names, checkbox/radio option labels, and custom source labels, causing arbitrary JavaScript to execute in other users' control-panel sessions. Fixed in 4.17.0-beta.1 and 5.9.0-beta.1.
AnalysisAI
Stored XSS in Craft CMS 4.x and 5.x allows an authenticated administrator to persist malicious JavaScript payloads in settings fields - section names, volume names, user group names, global set names, generated field names, checkbox/radio option labels, and custom source labels - that execute in other users' control-panel browser sessions when those pages are visited. The attack surface spans seven distinct injection points across the admin settings UI, all sharing the same root defect in Twig template rendering. No public exploit identified at time of analysis, though a proof of concept is documented in the upstream security advisory GHSA-4mgv-366x-qxvx, and the upstream CHANGELOG characterizes the severity as low.
Technical ContextAI
The vulnerability class is CWE-79 (Improper Neutralization of Input During Web Page Generation). Craft CMS uses the Twig templating engine for its control panel, where the |raw filter intentionally disables HTML auto-escaping to allow trusted HTML content. The flaw arises because user-controlled settings names and field option labels were passed through {{ label|raw }} in src/templates/_includes/forms/checkbox.twig and radio.twig, as well as via JavaScript helpers Craft.ui.createCheckbox() and Craft.ui.createSelect() in the compiled cp.js asset. These rendering paths treated stored setting names as trusted HTML rather than plain text. The CPE cpe:2.3:a:craftcms:cms:*:*:*:*:*:*:*:* applies to the Composer package craftcms/cms across both major version lines. The fix replaces {{ label|raw }} with {{ label }} (auto-escaped) and introduces an explicit opt-in mechanism (raw() wrapper or labelHtml property) for intentional raw HTML labels.
RemediationAI
Upgrade Craft CMS 4.x installations to 4.17.0-beta.1 or later, and 5.x installations to 5.9.0-beta.1 or later; these are the first versions containing the fix per confirmed package metadata and patch commits at https://github.com/craftcms/cms/commit/943152d2246b36f12adf161a03b8695b773d9276 and https://github.com/craftcms/cms/commit/67780a778c6ec04e68e64a0b1177c168306144a2. Note that both fix versions are beta releases - verify your organization's tolerance for pre-release software before deploying. As an immediate compensating control, set allowAdminChanges = false in the Craft CMS production configuration, which blocks the injection-phase entirely; the trade-off is that settings changes must be made in a development environment and deployed, preventing in-place admin configuration of production systems. Restricting admin access to trusted personnel also limits the blast radius, as only users with admin credentials can inject payloads.
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
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.
A security vulnerability in juzaweb CMS (CVSS 6.3). Risk factors: public PoC available.
A security vulnerability in juzaweb CMS (CVSS 6.3). Risk factors: public PoC available.
Same weakness CWE-79 – Cross-site Scripting (XSS)
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-38159
GHSA-f95g-vm94-46c3