Duplicate Advisory: Craft CMS: Authenticated RCE via `condition.config` JSON cleanse bypass
High severity
GitHub Reviewed
Published
Aug 11, 2026
to the GitHub Advisory Database
•
Updated Sep 1, 2026
Withdrawn
This advisory was withdrawn on Sep 1, 2026
Description
Published by the National Vulnerability Database
Aug 11, 2026
Published to the GitHub Advisory Database
Aug 11, 2026
Reviewed
Sep 1, 2026
Withdrawn
Sep 1, 2026
Last updated
Sep 1, 2026
Duplicate Advisory
This advisory has been withdrawn because it is a duplicate of GHSA-265m-7826-wjqm. This link is maintained to preserve external references.
Original Description
Craft CMS versions from 4.0.0-RC1 before 4.18.2 and from 5.0.0-RC1 before 5.10.6 contain an authenticated remote code execution vulnerability in the control panel element-search condition handling. Craft cleanses the outer request-controlled condition array via Component::cleanseConfig(), but Conditions::createCondition() later decodes and merges the JSON string in condition.config without re-running cleanseConfig() on the decoded configuration. Because condition.config is a JSON string during the first cleanse, Yii special config keys such as 'as ...' and 'on ...' can be hidden inside it and, after JSON decoding, are interpreted by Yii as behavior/event configuration during FieldLayout object creation. An attacker with an authenticated control panel session (and a valid CSRF token) can exploit this to execute operating system commands as the PHP/web user.
References