Skip to main content
← All vulnerabilities
CVE-2026-31857GHSA-FP5J-J7J4-MCXC

CraftCMS has an RCE vulnerability via relational conditionals in the control panel

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 5.9.9, 4.17.4
5 proofs of concept on GitHub
  • Exploitation: none
  • Automatable: yes
  • Technical impact: total

Summary

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.

Timeline

  1. CVE published
  2. CISA SSVC assessment

    Exploitation: none · Automatable: yes · Technical impact: total

  3. Record last updated

Affected versions

  • craftcms cms

    From 5.0.0-RC1 · fixed in 5.9.9; From 4.0.0-beta.1 · fixed in 4.17.4

  • craftcms/cmsPackagist

    From 5.0.0-RC1 · fixed in 5.9.9

  • craftcms/cmsPackagist

    From 4.0.0-beta.1 · fixed in 4.17.4

References 7

GitHub · craftcms/cms

GitHub · 0Asylum/CVE-2026-31857

GitHub · 0xTatsuki/CVE-2026-31857

GitHub · TRX-0/CVE-2026-31857-craftcms-ssti

GitHub · WhiteMachin3/CVE-2026-31857

GitHub · kaizoku73/CVE-2026-31857-PoC