Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-privilege CP user
-
DeliverySubmit crafted element-search condition
-
ExploitCharacter oracle leaks securityKey via JSON responses
-
ExecutionForge HMAC-signed redirect parameter
-
ImpactReach unsandboxed renderObjectTemplate, invoke PHP callables as web server user
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V1 - Encoding and Sanitization Template injection prevention
|
| Exploitation Conditions | Requires a valid authenticated Craft control panel account of any privilege level (PR:L) - exploitation is not anonymous. No non-default configuration is needed: the element-search condition feature, its allowed 'column' filter delegating to Yii ArrayHelper, and the JSON element-index endpoint are standard control panel functionality, so default installations in the vulnerable ranges (4.0.0 to <4.18.9 and 5.0.0 to <5.11.2) are affected. The only hard limiter is the authentication requirement; the oracle and subsequent HMAC forgery require no user interaction and no special platform or deployment mode. Patching to 4.18.9 or 5.11.2 is the stated fix. |
| Impact | This is a genuine high-priority issue rather than a CVSS-inflated one, though the authentication prerequisite tempers it. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N, VC:H/VI:H/VA:H, score 8.7) describes a network-reachable, low-complexity attack that achieves full confidentiality, integrity and availability impact - effective remote code execution as the web server user. The decisive limiter is PR:L: the attacker must already hold a valid control panel account, so this is not anonymous internet exploitation but rather a privilege-escalation/sandbox-escape path available to any logged-in CP user (including low-trust editors). No EPSS score was provided in the input, and the vulnerability is NOT listed in CISA KEV, so there is no evidence of widespread active exploitation; the vuln.today decision label is 'this_week', indicating elevated but not emergency urgency. A public PoC reference exists (the vendor advisory describes a working regression proof using a harmless substr() callback and the Hackrate hacktivity writeup), but it is not verified as a packaged, OS-command-executing exploit - the advisory explicitly notes the proof does not run an OS command. Net: treat as a prompt-patch item for any Craft CMS deployment where untrusted or numerous users have control panel access; the barrier is account access, not configuration. |
| Exploit ScenarioDerived | A low-privilege but authenticated Craft control panel user submits an element-search condition whose selector is evaluated as a sandboxed Twig object template; by chaining single-segment column lookups that delegate to Yii ArrayHelper outside Twig's SecurityPolicy, they build a remote character oracle (author ID 1 vs. empty JSON array) to exfiltrate GeneralConfig::securityKey one character at a time. With the key recovered offline, the attacker forges Craft's HMAC-signed parameters (e.g. redirect) that reach the unsandboxed View::renderObjectTemplate(), invoking native PHP callables as the web server user. A public PoC reference exists demonstrating the sandbox escape with substr(); it is not verified as a working OS-command exploit. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 23, 2026
Any authenticated control panel user in Craft CMS - regardless of privilege level - can escape the Twig sandbox through an element-search condition and use a boolean oracle to recover the site's GeneralConfig::securityKey character by character, then forge Craft's HMAC-signed parameters offline and reach unsandboxed View::renderObjectTemplate(), where Twig string-callable syntax invokes native PHP callables as the web server user. Default installations in the ranges 4.0.0 to before 4.18.9 and 5.0.0 to before 5.11.2 are affected; no non-default configuration is required and no user interaction is involved. The vendor-released fix is 4.18.9 (4.x) and 5.11.2 (5.x); exploitation is not confirmed in the wild and no EPSS or KEV signal was supplied, though the advisory documents a regression proof that invokes a harmless substr() callback rather than an OS command. The vulnerability is a genuine high-priority issue rather than a CVSS-inflated one, though the authentication prerequisite tempers it.
RemediationAI
Vendor-released patch: upgrade composer/craftcms/cms to 4.18.9 for the 4.x branch or 5.11.2 for the 5.x branch, per GHSA-v4q3-2g5g-wjj6 and the 5.11.2 release notes; because the same 5.11.2 release also fixes unrelated high-severity SQL injection and permission escalation bugs, sites on 5.x should not defer the update. The advisory documents no separate workaround, and the vulnerable behavior is standard control panel functionality (element-search conditions, the 'column' filter, and the JSON element-index endpoint), so disabling it means removing the feature rather than toggling a setting. The practical compensating control is to shrink the PR:L exposure: audit and reduce control panel accounts, and treat every existing CP account as a potential launch point, since any privilege level suffices. Because the chain depends on recovering GeneralConfig::securityKey, rotate that secret after any suspected exploitation so an already-exfiltrated key cannot be reused for HMAC forgery - rotating it invalidates existing signed tokens, links and sessions, which is the expected side effect. Finally, review control panel and web server logs for anomalous element-search or element-index JSON requests that vary a single character and return alternating empty and non-empty result sets, which is the signature of the oracle.
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
The root cause is CWE-1336, improper neutralization of special elements used in a template engine - server-side template injection. Craft CMS lets a control panel user supply an element-search condition whose element selector is rendered as a Twig object template under a sandbox. Craft's allowed 'column' filter hands property lookup to Yii's ArrayHelper rather than keeping the resolution inside Twig, so the SecurityPolicy's property and method allowlists (which are empty in the sandbox configuration) are never consulted; repeated single-segment lookups walk the object graph outside the sandbox's authority. The condition value is ultimately cast to an integer, but that does not protect the secret: the template can be made to yield author ID 1 when a guessed key character matches and an impossible ID otherwise, so the JSON element-index endpoint returns entries in the first case and an empty array in the second, producing a stable remote character oracle against GeneralConfig::securityKey. With that key recovered, the same low-privileged user can compute Craft's generic HMAC wire format offline and submit signed parameters - redirect being the cited example - that are accepted and passed to View::renderObjectTemplate() without a sandbox, where Twig's string-callable form reaches native PHP callables. Impact is escape of the intended template security authority and execution of attacker-selected PHP callables as the web server user; SQL injection and permission escalation fixes shipped in the same 5.11.2 release are separate advisories, not part of this chain.
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:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Network JSON endpoint and a reliable deterministic oracle give AV:N/AC:L; any CP account suffices so PR:L; PHP callable execution as web server user yields C:H/I:H/A:H within one authority, so S:U.
Primary rating from Vendor (Hackrate).
CVSS VectorVendor: Hackrate
Lifecycle Timeline
2DescriptionCVE.org
Craft CMS allows any authenticated control panel user to submit an element-search condition whose element selector is evaluated as a sandboxed Twig object template. Craft’s allowed column filter delegates property lookup to Yii ArrayHelper, outside Twig’s SecurityPolicy. Repeated single-segment lookups therefore bypass the sandbox’s empty property/method allowlists.
The vulnerable condition value is ultimately cast to an integer. That does not protect the secret: the template can return author ID 1 when a guessed key character is correct and an impossible ID otherwise. The JSON endpoint returns entries for the first case and an empty array for the second, forming a stable remote character oracle.
After recovering GeneralConfig::securityKey, the same user can compute Craft’s generic HMAC wire format offline. Signed parameters such as redirect are then accepted and passed to unsandboxed View::renderObjectTemplate(), where Twig’s string-callable form can invoke native PHP callables. The regression proof uses the harmless substr() callback and observes abcdef becoming cdef; it does not execute an OS command.
Technical POC Analysis
CWE-1336 (improper neutralisation of special elements used in a template engine - server-side template injection) in craftcms/cms (Composer package).
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
CVE-2026-115938 is a high-severity vulnerability in Craft CMS that allows any authenticated control panel user, even with minimal privileges, to escape the Twig sandbox and potentially execute arbitrary PHP code as the web server user. This affects all default installations of Craft CMS versions 4.0.0 to 4.18.9 and 5.0.0 to 5.11.2, meaning most organizations using these versions are exposed. Leadership should prioritize remediation because a low-privileged insider or compromised account could escalate to full server compromise, putting sensitive data and systems at risk.
No vendor-released patch identified at time of analysis. Interim mitigations include restricting control panel access to trusted users, monitoring for suspicious activity, and reviewing user privileges; however, upgrading to the fixed versions (4.18.9 or 5.11.2) is the definitive remediation once available.
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
OS command injection occurs when an application passes unsanitized user input directly into system shell commands.
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-109206
GHSA-gg4p-9c93-5hfp
NVD
CVE.org
EPSS
Exploit-DB