{"id":"CVE-2026-109304","state":"PUBLISHED","title":"Craft CMS 4.0.0 before 4.18.7 and 5.0.0 before 5.10.14 Arbitrary File Read via Twig create() DOMDocument","description":"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.","publishedAt":"2026-10-12T16:05:00.860Z","updatedAt":"2026-10-13T16:55:02.469Z","severity":{"score":6.9,"label":"Medium","version":"4.0","vector":"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","source":"VulnCheck"},"assigner":"VulnCheck","products":["craftcms cms"],"affected":[{"vendor":"craftcms","product":"cms","defaultStatus":"unaffected","versions":[{"version":"4.0.0","status":"affected","lessThan":"4.18.7","versionType":"semver"},{"version":"4.18.7","status":"unaffected","versionType":"semver"}]},{"vendor":"craftcms","product":"cms","defaultStatus":"unaffected","versions":[{"version":"5.0.0","status":"affected","lessThan":"5.10.14","versionType":"semver"},{"version":"5.10.14","status":"unaffected","versionType":"semver"}]}],"references":["https://github.com/craftcms/cms/security/advisories/GHSA-j5wg-m2pr-35qc","https://www.vulncheck.com/advisories/craft-cms-4.0.0-before-4.18.7-and-5.0.0-before-5.10.14-arbitrary-file-read-via-twig-create-domdocument"],"weaknesses":["CWE-200"],"ingestedAt":"2026-10-29T20:10:33.477Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/109xxx/CVE-2026-109304.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-109304","state":"PUBLISHED","datePublished":"2026-10-12T16:05:00.860Z","dateUpdated":"2026-10-13T16:55:02.469Z","assignerShortName":"VulnCheck","assignerOrgId":"83251b91-4cc7-4094-a5c7-464a1b83ea10","dateReserved":"2026-10-12T14:13:39.027Z"},"containers":{"cna":{"title":"Craft CMS 4.0.0 before 4.18.7 and 5.0.0 before 5.10.14 Arbitrary File Read via Twig create() DOMDocument","descriptions":[{"lang":"en","value":"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."}],"affected":[{"vendor":"craftcms","product":"cms","defaultStatus":"unaffected","versions":[{"version":"4.0.0","status":"affected","lessThan":"4.18.7","versionType":"semver"},{"version":"4.18.7","status":"unaffected","versionType":"semver"}]},{"vendor":"craftcms","product":"cms","defaultStatus":"unaffected","versions":[{"version":"5.0.0","status":"affected","lessThan":"5.10.14","versionType":"semver"},{"version":"5.10.14","status":"unaffected","versionType":"semver"}]}],"references":[{"url":"https://github.com/craftcms/cms/security/advisories/GHSA-j5wg-m2pr-35qc","tags":["vendor-advisory"],"name":"GitHub Security Advisory (GHSA-j5wg-m2pr-35qc)"},{"url":"https://www.vulncheck.com/advisories/craft-cms-4.0.0-before-4.18.7-and-5.0.0-before-5.10.14-arbitrary-file-read-via-twig-create-domdocument","name":"VulnCheck Advisory: Craft CMS 4.0.0 before 4.18.7 and 5.0.0 before 5.10.14 Arbitrary File Read via Twig create() DOMDocument","tags":["third-party-advisory"]}],"metrics":[{"cvssV4_0":{"Automatable":"NOT_DEFINED","Recovery":"NOT_DEFINED","Safety":"NOT_DEFINED","attackComplexity":"LOW","attackRequirements":"NONE","attackVector":"NETWORK","baseScore":6.9,"baseSeverity":"MEDIUM","exploitMaturity":"NOT_DEFINED","privilegesRequired":"HIGH","providerUrgency":"NOT_DEFINED","subAvailabilityImpact":"NONE","subConfidentialityImpact":"NONE","subIntegrityImpact":"NONE","userInteraction":"NONE","valueDensity":"NOT_DEFINED","vectorString":"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","version":"4.0","vulnAvailabilityImpact":"NONE","vulnConfidentialityImpact":"HIGH","vulnIntegrityImpact":"NONE","vulnerabilityResponseEffort":"NOT_DEFINED"},"format":"CVSS"},{"cvssV3_1":{"attackComplexity":"LOW","attackVector":"NETWORK","availabilityImpact":"NONE","baseScore":4.9,"baseSeverity":"MEDIUM","confidentialityImpact":"HIGH","integrityImpact":"NONE","privilegesRequired":"HIGH","scope":"UNCHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:N/A:N","version":"3.1"},"format":"CVSS"}],"problemTypes":[{"descriptions":[{"cweId":"CWE-200","lang":"en","description":"Exposure of Sensitive Information to an Unauthorized Actor","type":"CWE"}]}],"providerMetadata":{"shortName":"VulnCheck","orgId":"83251b91-4cc7-4094-a5c7-464a1b83ea10","dateUpdated":"2026-10-12T16:05:00.860Z"},"datePublic":"2026-09-22T00:00:00.000Z","cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:a:craftcms:craft_cms:*:*:*:*:*:*:*:*","versionStartIncluding":"4.0.0","versionEndExcluding":"4.18.7"}]}]},{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:a:craftcms:craft_cms:*:*:*:*:*:*:*:*","versionStartIncluding":"5.0.0","versionEndExcluding":"5.10.14"}]}]}],"credits":[{"lang":"en","value":"baeseungwon1010","type":"reporter"}],"x_generator":{"engine":"vulncheck-endgame"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2026-10-13T15:49:04.368377Z","id":"CVE-2026-109304","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-10-13T16:55:02.469Z"}}]}}}