Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-priv accessCp user
-
DeliveryPost fake API headers to process-api-response-headers
-
ExploitCRLF-inject new CRAFT_SECURITY_KEY into .env
-
ExecutionForge signed login redirect with Twig system()
-
ImpactExecute OS commands as PHP worker
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Code injection prevention, sandbox exec
MITRE ATT&CK
2 techniques across 2 tactics: Execution, Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires an authenticated Craft control-panel account possessing the |
| Impact | This is a genuine priority despite requiring authentication. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N) describes a network-reachable, low-complexity attack needing only low privileges, with high impact to confidentiality, integrity and availability (VC:H/VI:H/VA:H) - consistent with the described outcome of arbitrary OS command execution as the PHP worker. The decisive factor is the privilege model: PR:L here means any authenticated control-panel user holding only the |
| Exploit ScenarioDerived | An attacker who holds (or phishes/registers) a low-privileged Craft control-panel account with the |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 23, 2026
Authenticated, low-privileged Craft CMS control-panel users (any account holding only the accessCp permission) can escalate to arbitrary operating-system command execution as the PHP worker. By sending a fake Craft API response header whose X-Craft-Plugin-Licenses value contains embedded newlines, the user abuses a CRLF injection in the app/process-api-response-headers action: Craft writes the value into the .env file without stripping line breaks, so the attacker can inject an attacker-known CRAFT_SECURITY_KEY. Once that key is loaded, the attacker forges a signed login redirect carrying a Twig system() callback. Both the 4.x branch (4.0.0 through 4.18.8) and the 5.x branch (5.0.0 through 5.11.1) are affected; vendor fixes exist in 4.18.9 and 5.11.2, and no public exploit code was identified at time of analysis. The vulnerability requires a valid control-panel login, but no admin rights, no user interaction and no non-default configuration, so any CP user with accessCp qualifies.
RemediationAI
Vendor-released patch: upgrade to Craft CMS 4.18.9 (4.x branch) or 5.11.2 (5.x branch) per advisory GHSA-9hp6-3565-gvh5 (https://github.com/craftcms/cms/security/advisories/GHSA-9hp6-3565-gvh5) and the release at https://github.com/craftcms/cms/releases/tag/5.11.2 - the 5.11.2 notes also state it fixes a high-severity SQL injection (GHSA-mjj9-pjh4-r48g) and high-severity permission escalation issues (GHSA-r56r-f696-c8w9), so the upgrade should not be deferred to a later maintenance window. Because the attack plants an attacker-chosen signing secret, upgrading alone is not sufficient on a system that may already have been touched: inspect .env for unexpected or duplicated CRAFT_SECURITY_KEY entries and replace the key with a freshly generated value after patching, accepting that all existing sessions and signed tokens will be invalidated and users must log in again. Since the prerequisite is any account holding accessCp, audit and prune control-panel accounts to the minimum set that genuinely needs control-panel access, and keep the control panel behind network restrictions or a trusted reverse proxy where feasible; both reduce exposure but do not replace the patch. Note that this issue is independent of the earlier Twig-sandbox key-disclosure report - remediating one does not remediate the other, so verify both code paths are addressed by the version you deploy.
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 is a PHP content management system distributed as the Composer package craftcms/cms and built on the Yii2 framework; its runtime configuration, including the cryptographically sensitive CRAFT_SECURITY_KEY used to sign sessions and tokens, is stored in a .env file. The app/process-api-response-headers control-panel action emulates Craft API responses, and the X-Craft-Plugin-Licenses value supplied through it is passed to the application's .env writer. The writer does not validate for line breaks, so a value containing CRLF sequences introduces arbitrary additional lines into .env rather than staying a single scalar. This is a classic configuration-file injection primitive: the attacker plants a CRAFT_SECURITY_KEY of their own choosing, and once Craft reloads that key the attacker controls the signing secret and can mint a valid signed login redirect containing a Twig system() callback. The ultimate impact class is CWE-94 (Code Injection) because the injected secret is the stepping stone to evaluating arbitrary Twig/PHP and executing OS commands, even though the entry primitive itself is newline/header injection plus missing input validation. The 5.11.2 release notes add a craft\helpers\StringHelper::containsNewlines() helper, which is consistent with the newline-checking fix for this issue. Notably, this is a distinct code path from the earlier Twig-sandbox-bypass report that *reads* the existing key; this one *replaces* it, so remediating one does not remediate the other.
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-reachable CP action with low-complexity CRLF injection by any authenticated accessCp user (PR:L, not PR:N), no user interaction, yielding full RCE so C/I/A all High.
Primary rating from Vendor (Hackrate).
CVSS VectorVendor: Hackrate
Lifecycle Timeline
2DescriptionCVE.org
The app/process-api-response-headers action accepts fake Craft API response headers from any authenticated control panel user.
A non-admin user with only accessCp can place newline characters in X-Craft-Plugin-Licenses. Craft passes this value to its .env writer without removing the newlines.
This lets the user insert a new attacker-known CRAFT_SECURITY_KEY into .env. After Craft loads that key, the user can forge a signed login redirect containing a Twig system() callback.
This is different from the previous report. That report reads the existing key through a Twig sandbox bypass. This report replaces the key through fake API headers and CRLF injection. Fixing either source does not fix the other.
Technical POC Analysis
The bug class is CWE-94 code injection, realized through a CRLF/header-value injection into a configuration file.
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-115935 in Craft CMS allows any low-privileged control-panel user (with only accessCp permission) to escalate to arbitrary operating system command execution as the PHP worker. This affects all organizations running affected Craft CMS versions (4.x before 4.18.9 and 5.x before 5.11.2) and could lead to full server compromise. Leadership should prioritize patching because a compromised CP account (e.g., via phishing or credential reuse) can be leveraged to execute commands, potentially resulting in data breach, service disruption, and reputational damage.
Apply vendor patch.
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
Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
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-109191
GHSA-j6hf-w48h-c9f9
NVD
CVE.org
EPSS
VulDB
Exploit-DB