Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain entry-type config access (PR:H)
-
ExploitInject create('DOMDocument') title format
-
ExecutionTwig renders loadHTMLFile().textContent
-
ImpactLocal 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
Affected Packages
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
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
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.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
1DescriptionCVE.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
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
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
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-97606
GHSA-52mh-mf22-cc6j
NVD
CVE.org
EPSS
Exploit-DB