Craft CMS control panel users can replace security key and run code
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- None
- Attack complexity
- Low
- Attack requirements
- None
- Impact type
- Code execution
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA. Impact type from CWE-94.
Summary
Craft CMS from 5.0.0 before 5.11.2 and from 4.0.0 before 4.18.9 lets an authenticated control panel user with only accessCp permission replace the security key. The app/process-api-response-headers action accepts fake API response headers, and newline characters in X-Craft-Plugin-Licenses are written unfiltered into the .env file (CWE-94). The attacker can then forge a signed login redirect that runs a Twig system() callback on the server.
Written with Claude Haiku 5.5 from the sources below · 2026-11-02
Description from the CNA
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.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
Remediation
Upgrade Craft CMS 5.x to 5.11.2 and Craft CMS 4.x to 4.18.9.
Written with Claude Haiku 5.5 from the sources below · 2026-11-02
- Fix · CNA cms (craftcms) Fixed in 5.11.2, 4.18.9
Fixed in the same release
Records fixed by the same vendor advisory or release, as the CNA lists them.
- Release ·
craftcms cms 4.18.9, 5.11.2
2 records Highest priority Priority MEDIUM 2 MEDIUM
Other records, highest priority first
- TI-2026-80008 Sandbox escape in Craft CMS lets control panel users reach RCEPriority MEDIUM 40
Timeline
- 2026-10-23 Threatist record created from CVE-2026-115935
- 2026-10-24 Alias added: GHSA-j6hf-w48h-c9f9
- 2026-10-24 Priority changed: MEDIUM → LOW
- 2026-10-25 EPSS moved to the below the 50th percentile
- 2026-11-02 CISA SSVC decision points changed
- 2026-11-02 Priority changed: LOW → MEDIUM
References
More Craft CMS vulnerabilities
- TI-2025-23503 Craft CMS Allows Remote Code Execution KEVCVSS 3.1CRITICAL 10.0
- TI-2024-37138 RCE when PHP `register_argc_argv` config setting is enabled in craftcms/cms KEVCVSS 4.0CRITICAL 9.3
- TI-2025-16994 Potential RCE with a compromised security key in craft/cms KEVCVSS 3.1HIGH 8.1
- TI-2025-24595 Craft CMS stores user-provided content in session files KEVCVSS 4.0MEDIUM 6.9
- TI-2023-22284 Craft CMS Remote Code Execution vulnerability CVSS 3.1CRITICAL 10.0
- TI-2024-25171 Craft CMS up to v3.7.31 was discovered to contain a SQL injection vulnerability via the GraphQL API endpoint. CVSS 3.1CRITICAL 9.8
Sources
- CVE-2026-115935 · CVE Program
- CVE-2026-115935 · NVD
- FIRST EPSS
- GHSA-j6hf-w48h-c9f9 · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences