CVE-2026-31857
Severity CVSS v4.0:
HIGH
Type:
CWE-94
Code Injection
Publication date:
11/03/2026
Last modified:
17/03/2026
Description
Craft is a content management system (CMS). Prior to 5.9.9 and 4.17.4, a Remote Code Execution vulnerability exists in the Craft CMS 5 conditions system. The BaseElementSelectConditionRule::getElementIds() method passes user-controlled string input through renderObjectTemplate() -- an unsandboxed Twig rendering function with escaping disabled. Any authenticated Control Panel user (including non-admin roles such as Author or Editor) can achieve full RCE by sending a crafted condition rule via standard element listing endpoints. This vulnerability requires no admin privileges, no special permissions beyond basic control panel access, and bypasses all production hardening settings (allowAdminChanges: false, devMode: false, enableTwigSandbox: true). Users should update to the patched 5.9.9 or 4.17.4 release to mitigate the issue.
Impact
Base Score 4.0
8.10
Severity 4.0
HIGH
Base Score 3.x
8.80
Severity 3.x
HIGH
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:a:craftcms:craft_cms:*:*:*:*:*:*:*:* | 4.0.0.1 (including) | 4.17.4 (excluding) |
| cpe:2.3:a:craftcms:craft_cms:*:*:*:*:*:*:*:* | 5.0.1 (including) | 5.9.9 (excluding) |
| cpe:2.3:a:craftcms:craft_cms:4.0.0:-:*:*:*:*:*:* | ||
| cpe:2.3:a:craftcms:craft_cms:4.0.0:beta1:*:*:*:*:*:* | ||
| cpe:2.3:a:craftcms:craft_cms:4.0.0:beta2:*:*:*:*:*:* | ||
| cpe:2.3:a:craftcms:craft_cms:4.0.0:beta3:*:*:*:*:*:* | ||
| cpe:2.3:a:craftcms:craft_cms:4.0.0:beta4:*:*:*:*:*:* | ||
| cpe:2.3:a:craftcms:craft_cms:4.0.0:rc1:*:*:*:*:*:* | ||
| cpe:2.3:a:craftcms:craft_cms:4.0.0:rc2:*:*:*:*:*:* | ||
| cpe:2.3:a:craftcms:craft_cms:4.0.0:rc3:*:*:*:*:*:* | ||
| cpe:2.3:a:craftcms:craft_cms:5.0.0:-:*:*:*:*:*:* | ||
| cpe:2.3:a:craftcms:craft_cms:5.0.0:rc1:*:*:*:*:*:* |
To consult the complete list of CPE names with products and versions, see this page



