Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-priv CP user with element edit rights
-
DeliveryAbuse elementLabelHtml self-signing oracle to sign Twig payload
-
ExploitReplay token as redirect POST param
-
ExecutionReach unsandboxed renderObjectTemplate sink
-
PersistExecute arbitrary PHP as web server
-
ImpactFull server compromise
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 CMS control-panel account with edit rights on at least one element type (PR:L) - not anonymous or default-public. The core enabling conditions are two implementation flaws present in 5.10.0-5.10.12: the getPostedRedirectUrl() → renderObjectTemplate() redirect sink is unsandboxed, and Cp::elementLabelHtml() acts as a self-signing oracle that lets a low-privilege user obtain a valid HMAC token over arbitrary Twig. Because Craft/Yii tokens are not bound to a specific parameter name, a token signed for returnUrl can be replayed as the redirect POST parameter. No user interaction is required. Exploitation is limited to instances running the affected versions that grant the attacker a CP account with any element-edit permission; upgrading to 5.10.13 removes both the unsandboxed sink and the signing oracle. |
| Impact | This is a genuine high-priority issue, not a high-CVSS-but-low-real-risk case. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N) describes a network-reachable, low-complexity attack requiring only low privileges and no user interaction, with full VC:H/VI:H/VA:H impact - consistent with the description's claim of arbitrary PHP execution and full server compromise. The one meaningful barrier is PR:L: the attacker must already hold an authenticated control-panel account with edit rights on at least one element type, which contains blast radius to environments that provision such accounts. No EPSS score, no CISA KEV listing, and no public POC were provided, so exploitation status is 'no public exploit identified at time of analysis' - the risk is derived from the technical severity and the fact that this is an incomplete fix for a prior CVE (CVE-2026-55794), meaning the sink and the attack class were already publicly documented. That prior-disclosure context materially raises the practical likelihood that a working exploit is developed, even though none is confirmed today. No signals are conflicting; the main data gap is the absence of exploitation-probability telemetry (EPSS) and any POC confirmation. |
| Exploit ScenarioDerived | An attacker with a low-privilege Craft CMS control-panel account (edit rights on any single element type) abuses the self-signing oracle added in Cp::elementLabelHtml() to mint a valid Yii HMAC token over attacker-controlled Twig supplied as the returnUrl parameter. Because Craft/Yii tokens are not bound to a parameter name, the attacker replays that signed value as the redirect POST parameter, which flows into the unsandboxed getPostedRedirectUrl() → renderObjectTemplate() sink, achieving server-side template injection that executes arbitrary PHP. No public POC is referenced, but the flaw is a documented incomplete fix for CVE-2026-55794. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 16, 2026
Server-side template injection in Craft CMS 5.10.0 through 5.10.12 allows an authenticated low-privilege control-panel user with edit rights on even a single element type to execute arbitrary PHP code and fully compromise the server. The bug is an incomplete fix for CVE-2026-55794: the Controller::getPostedRedirectUrl() to View::renderObjectTemplate() redirect sink stayed unsandboxed, and the same patch introduced a self-signing oracle in Cp::elementLabelHtml(); because Craft/Yii HMAC tokens are not bound to a parameter name, a token minted over attacker-controlled Twig for returnUrl can be replayed as the redirect POST parameter. Exploitation requires a valid CP account with element-edit permissions (PR:L, no user interaction); no public exploit code or confirmed active exploitation was identified at time of analysis, and the vendor-released patch is Craft CMS 5.10.13.
RemediationAI
Upgrade Craft CMS to 5.10.13 or later; this is the only complete fix, because a single release addresses both the unsandboxed getPostedRedirectUrl() to renderObjectTemplate() sink and the HMAC signing oracle in Cp::elementLabelHtml(), and vendor-released patch version 5.10.13 should be applied via your normal Composer/Docker image update path, followed by verification in Settings that the running version reports 5.10.13 or higher. Refer to https://github.com/craftcms/cms/security/advisories/GHSA-5jmw-g85v-7jv2 and https://www.vulncheck.com/advisories/craft-cms-5.10.0-before-5.10.13-authenticated-remote-code-execution for details. Until patching is complete, treat control-panel access as a privileged boundary: audit and temporarily remove element-edit permissions from untrusted or low-privilege CP accounts (including single-element-type editors), or disable/expire those accounts entirely - the trade-off is that legitimate content contributors lose editing capability, so coordinate with editorial teams and re-grant permissions only after upgrading. Where feasible, restrict the control panel path (by default /admin) to trusted source IPs or place it behind a VPN or zero-trust proxy; this blocks the needed POST requests but also blocks legitimate remote administr@tion and mobile content workflows. Review Craft and web server logs for POSTs containing Twig delimiters ({{, }}, {% %}) in a redirect or returnUrl parameter and for unexpected writes or process spawning from the PHP-FPM user, and consider temporary WAF rules targeting those delimiters as a best-effort filter - note these are easily evaded by encoding or alternate syntax and are not a substitute for 5.10.13. Rotate any secrets or credentials reachable from the Craft process in case prior exploitation occurred, since successful SSTI yields full PHP code execution in the application's context.
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-94 (Improper Control of Generation of Code / code injection) arising from unsafe Twig evaluation. Craft CMS renders element labels and other UI strings through Yii's view layer, where View::renderObjectTemplate() compiles and evaluates a supplied string as a Twig template; in 5.10.0-5.10.12 this sink is reached from Controller::getPostedRedirectUrl() without the Twig sandbox extension, so attacker-influenced template source runs with PHP-level privileges rather than restricted object access. The second enabling flaw is in Cp::elementLabelHtml(), which - as added by the incomplete fix for CVE-2026-55794 - can be induced to generate a valid HMAC signature over arbitrary attacker-supplied Twig, acting as a signing oracle for a user who only has edit rights on one element type. Craft/Yii HMAC tokens are computed over the payload value without binding the signature to a specific parameter name, so a token legitimately signed for the returnUrl parameter is accepted when the identical value is submitted as the redirect POST parameter. This cross-parameter token reuse is what turns a low-privilege, permission-scoped account into a path to the unsandboxed template sink, and from there into arbitrary PHP execution and full server compromise. Upgrading to 5.10.13 removes both the unsandboxed redirect sink and the signing oracle; the affected lineage is Craft CMS 5.10.x, a PHP/Yii2-based content management system.
Know when Craft 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 low-complexity attack; PR:L because a low-privilege CP account with element edit rights is required; arbitrary PHP execution yields full C/I/A impact.
Primary rating from Vendor (vulncheck).
CVSS VectorVendor: vulncheck
Lifecycle Timeline
2DescriptionCVE.org
Craft CMS versions 5.10.0 through 5.10.12 contain an incomplete fix for CVE-2026-55794: the Controller::getPostedRedirectUrl() -> View::renderObjectTemplate() sink remained unsandboxed, and the same fix commit added a self-signing oracle in Cp::elementLabelHtml(). Because Craft/Yii HMAC tokens are not bound to a parameter name, an authenticated low-privilege control panel user with edit rights on a single element type can mint a token over attacker-controlled Twig for the returnUrl parameter and replay it as the redirect POST parameter, reaching the unsandboxed sink and achieving server-side template injection that executes arbitrary PHP code (full server compromise). The issue is fixed in 5.10.13.
Technical POC Analysis
CWE-94 (Improper Control of Generation of Code).
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Craft CMS versions 5.10.0 through 5.10.12 contain a server-side template injection flaw that allows any control-panel user with edit rights on even a single element type to execute arbitrary PHP and fully take over the underlying server. Because the required access level is a low-privilege content-editing account rather than an administrator, editors, contractors, and agency-managed logins represent a direct path to full compromise. Leadership should prioritize remediation on any internet-facing Craft installation given the potential for complete server takeover, data exposure, and lateral movement into connected systems.
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.
Craft CMS versions 3.x through 5.x contain a critical remote code execution vulnerability (CVSS 10.0) that allows unauth
Craft CMS stores arbitrary content provided by unauthenticated users in session files. Rated medium severity (CVSS 6.9),
Craft CMS is a platform for creating digital experiences. Rated critical severity (CVSS 9.8), this vulnerability is remo
Craft is a flexible, user-friendly CMS for creating custom digital experiences on the web and beyond. Rated critical sev
Craft CMS up to v3.7.31 was discovered to contain a SQL injection vulnerability via the GraphQL API endpoint. Rated crit
The SEOmatic component before 3.3.0 for Craft CMS allows Server-Side Template Injection that leads to RCE via malformed
RCE in Craft CMS before 4.17.0-beta.1/5.9.0-beta.1 via template injection for authenticated admins. PoC and patch availa
Authenticated remote code execution in Craft CMS versions 5.0.0-RC1 through 5.8.20 and 4.0.0-RC1 through 4.16.16 lets an
SQL injection in Craft CMS 4.0.0-RC1 through 4.16.17 and 5.0.0-RC1 through 5.8.21 allows authenticated Control Panel use
An issue found in CraftCMS v.3.8.1 allows a remote attacker to execute arbitrary code via a crafted script to the Sectio
Craft CMS through 3.7.36 allows a remote unauthenticated attacker, who knows at least one valid username, to reset the a
Craft CMS 2.6.3000 allows remote attackers to execute arbitrary PHP code by using the "Assets->Upload files" screen and
EUVD-2026-81293
GHSA-9v9g-4j69-p6q5
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB