GitHub Advisoryadvisory · Packagist
GHSA-265m-7826-wjqm Craft CMS: Authenticated RCE via `condition.config` JSON cleanse bypass
HIGH
Official page ↗
- Aliases
- CVE-2026-72778
- Ecosystem
- Packagist
- Packages
- craftcms/cms
- Severity
- High
- CVSS vector
- 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
- Weaknesses
- CWE-915
- Reviewed
- 2026-08-06
Affected packages
• Packagist craftcms/cms: >= 5.0.0-RC1, < 5.10.6 → fixed in 5.10.6
• Packagist craftcms/cms: >= 4.0.0-RC1, < 4.18.2 → fixed in 4.18.2
Description
Craft CMS has an authenticated remote code execution issue in the control panel element-search condition handling.
Craft cleans the outer request-controlled condition array with `Component::cleanseConfig()`, but `Conditions::createCondition()` later decodes and merges the JSON string in `condition.config` without re-running `cleanseConfig()` on the decoded/merged 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. After JSON decoding, those keys reach FieldLayout object creation and are interpreted by Yii as behavior/event configuration.
The RCE is semi-blind: the trigger endpoint returns a normal JSON response, and the command output is verified via a server-side file-write side effect retrieved in a subsequent request.
Preconditions
• The attacker needs an authenticated Craft control panel session.
• A valid CSRF token is required.
Impact
An authenticated control panel user can inject Yii behavior/event configuration after Craft’s intended config cleanse boundary. In the confirmed local lab, this led to command execution as the PHP/web user.
Potential attacker impact:
• Execute operating system commands as the PHP/web user.
• Read Craft secrets, environment variables, and application configuration.
• Access database credentials and stored site content.
• Modify site content, users, and application state.
• Pivot to internal services reachable from the Craft host or container.
• Cause denial of service or establish persistence depending on deployment permissions.
Related
Alias · CVE (1)
- CVE-2026-72778 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
Weakness · CWE (1)
- CWE-915 Improperly Controlled Modification of Dynamically-Determined Object Attributes weakness
References
- https://github.com/craftcms/cms/security/advisories/GHSA-265m-7826-wjqm web
- https://nvd.nist.gov/vuln/detail/CVE-2026-72778 advisory
- https://github.com/craftcms/cms/commit/353b5d676c88a854c9f6409ad83b837ca0c0e8da web
- https://github.com/craftcms/cms/commit/789789dc9e2a4e2f2562f51aaf879fb7757d8340 web
- https://github.com/craftcms/cms package
- https://github.com/craftcms/cms/releases/tag/4.18.2 web
- https://github.com/craftcms/cms/releases/tag/5.10.6 web
- https://www.vulncheck.com/advisories/craft-cms-rc1-before-authenticated-rce-via-condition-config web