Live › vulnerability › CVE-2026-115935
Go to dashboardA Craft CMS control panel user with only accessCp permission can inject newline characters through a fake X-Craft-Plugin-Licenses API header, which writes an attacker-chosen CRAFT_SECURITY_KEY into the .env file. The attacker can then forge a signed login redirect that carries a Twig system() callback, which runs commands on the server.
Summary written from the sources below. Check the originals before acting.
First seen by InfraStack 2026-10-23 23:44 UTC. All times on this page are UTC.
Sites running Craft CMS where non-admin users have the accessCp permission and can reach the control panel, so any control panel user with that role can exploit it. Sites where only trusted administrators can log into the control panel have a much smaller exposure, but the sources do not give affected version ranges. Sites that do not give control panel access to untrusted accounts can likely skip it, though the sources do not state this explicitly.
No product ranges from the sources yet.
Each row is the first time that source carried this signal. The analyst’s rows are its own findings.
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.
This page as .md · .json · in your agent: get_signal("CVE-2026-115935")
NVD data is provided by NIST and is public domain. Posts quoted belong to their authors.