Skip to main content

Craft CMS EUVDEUVD-2026-97606

| CVE-2026-109304 MEDIUM
Information Exposure (CWE-200)
2026-10-12 VulnCheck GHSA-52mh-mf22-cc6j
6.9
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Obtain entry-type config access (PR:H)
  2. Exploit
    Inject create('DOMDocument') title format
  3. Execution
    Twig renders loadHTMLFile().textContent
  4. Impact
    Local file contents exposed to viewing users

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V14 - Data Protection Data exposure prevention
MITRE ATT&CK

2 techniques across 2 tactics: Collection, Discovery

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires the attacker to control an entry-type title format - specifically the ability to set it directly or to push configuration via project-config/apply - which is a high-privilege/configuration-level capability (PR:H), not anonymous access. The exploit depends on Craft's Twig create() blocklist omitting DOMDocument, letting create('DOMDocument').loadHTMLFile() plus textContent read local files. A key limiting factor is that this is only impactful in multi-role deployments where the configuring user is distinct from, and more privileged than, the non-admin entry-viewing users who ultimately receive the leaked contents; in a single trusted-admin install the trust boundary is not meaningfully crossed. Impact is confined to confidentiality (arbitrary local file read); no integrity or availability effect.

Impact

This is a moderate-priority information-disclosure flaw, not a drop-everything emergency. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:H/UI:N, VC:H) scores 6.9 and tells a consistent story: network-reachable and low-complexity, but gated behind PR:H - the attacker must already hold high privileges (the ability to configure an entry-type title format, including via project-config/apply). The real-world risk therefore hinges on an operator/configuration-level trust boundary rather than anonymous internet exposure. No EPSS score, no CISA KEV listing, and no public POC were provided, so by the precision rules this is 'no public exploit identified at time of analysis' - there is no evidence of active exploitation or widespread automation. The signals are internally consistent (no CVSS-vs-description conflict): the description's requirement to 'set an entry-type title format' matches PR:H, and the impact is purely confidentiality (VI:N/VA:N) matching CWE-200. The notable nuance is that a high-privileged configurer uses the flaw to leak file contents to LOWER-privileged users (non-admin users who can view entries), so this is really a privilege-boundary bypass within a multi-tenant/multi-role Craft install. Priority should be elevated for environments where content editors or integrators do not fully trust the server's local filesystem; for single-admin deployments the practical risk is low.

Exploit ScenarioDerived

In a Craft CMS install with multiple roles, a user who can edit entry-type settings (or push a malicious project-config/apply) sets an entry-type title format containing create('DOMDocument').loadHTMLFile() with textContent pointing at a sensitive server file. When non-admin users then view affected entries, the rendered title discloses the local file's contents to them. No public exploit code was identified at time of analysis, and because PR:H is required, the attacker must already hold configuration-level access.

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

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

Alert me

AnalysisAIv1 – Oct 12, 2026

Arbitrary local file read in Craft CMS 4.0.0 through 4.18.6 and 5.0.0 through 5.10.13 lets a user who can set an entry-type title format - directly or by applying project config - abuse the Twig create('DOMDocument').loadHTMLFile() chain to read files from the server filesystem and surface their contents to non-admin users who can view the affected entries. The vulnerability stems from Craft's create() class blocklist omitting the DOMDocument class, and it is limited to confidentiality impact (CVSS 6.9, PR:H, C:H/I:N/A:N) because the attacker must already hold a high-privilege configuration capability rather than anonymous access. No public exploit code or confirmed active exploitation was identified at time of analysis, so this is a moderate-priority information-disclosure issue rather than an emergency, and it matters most in multi-role deployments where the configuring user is distinct from and more privileged than the entry-viewing users who receive the leaked file contents.

RemediationAI

Vendor-released patch: upgrade Craft CMS 4.x installations to 4.18.7 or later and 5.x installations to 5.10.14 or later, following the GitHub security advisory GHSA-j5wg-m2pr-35qc and the VulnCheck advisory for the full version matrix; for most sites the simplest path is to bump the craftcms/cms constraint in composer.json and run composer update. If an immediate upgrade is not possible, restrict who can edit entry-type title formats and who can run project-config/apply so that only fully trusted administrators hold that capability - this directly removes the PR:H precondition and collapses the attack to a trusted-admin self-disclosure scenario, but it does not fix the underlying blocklist gap and leaves the exposure in place for anyone who later gains config-write access. Additionally, audit existing title formats and any project config YAML for Twig expressions that call create() with DOMDocument, DOMDocumentFragment, or similar DOM classes, and remove them, since these are the payload containers and their presence indicates either prior exploitation or risky customization; note that this audit is detection rather than prevention and could miss obfuscated expressions. Because the impact is read-only confidentiality with no integrity or availability effect and no public exploit code was identified, schedule these upgrades in a normal patch cycle rather than an emergency response, prioritizing multi-role sites where non-admin users can view entries authored under attacker-controlled title formats.

Affected VersionsENISA

CMS 5.0.0 <5.10.14
CMS 4.0.0 <4.18.7

Affected Packages

euvd cms fix: 4.18.7, 5.10.14

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

Craft CMS renders entry titles through Twig templates, and title formats are configurable per entry type - either through the control panel or by pushing YAML/JSON via the project-config/apply workflow. Craft restricts which PHP classes can be instantiated from within these templates through a create() blocklist, but DOMDocument is not covered by that list. Because the underlying PHP DOM extension can load external or local resources through DOMDocument::loadHTMLFile(), an attacker with title-format write access can construct a Twig expression that instantiates DOMDocument, loads a local path such as /etc/passwd or the project's .env file, and reflects the resulting document's textContent into the rendered entry title. The root cause class is CWE-200 (Exposure of Sensitive Information), specifically an incomplete denylist in a templating sandbox that allows an unintended dangerous class to be reached. The CVSS 4.0/3.1 vectors both assign PR:H and a network attack vector with no user interaction, confirming this is a remote but privileged capability, and the impact is confined to confidentiality with no integrity or availability effect.

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 6.9 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
vuln.today AI 4.9 MEDIUM

Setting entry-type title formats/project-config requires high privilege (PR:H); network-delivered and low-complexity (AV:N/AC:L); impact is file-read confidentiality only, so C:H with I:N/A:N and no scope change.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

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

Lifecycle Timeline

1
Patch available
Oct 12, 2026 - 18:03 EUVD

DescriptionCVE.org

Craft CMS 4.0.0 before 4.18.7 and 5.0.0 before 5.10.14 contains an arbitrary file read vulnerability because the Twig create() class blocklist does not cover DOMDocument. Attackers able to set an entry-type title format, including via project-config/apply, can use create('DOMDocument').loadHTMLFile() with textContent to expose local file contents to non-admin users who can view entries.

Threat Intelligence Overview

EPSS Score
0.3%
Top 77% exploitable
Prevalence
Medium
popular commercial PHP CMS, common but far smaller footprint than WordPress
Data Quality
5 sources
Confidence: Medium

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.3%
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· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

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

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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