{"id":"CVE-2026-72778","aliases":["GHSA-265m-7826-wjqm"],"url":"https://o3.security/vulnerability/CVE-2026-72778","summary":"Craft CMS 5.0.0-RC1 before 5.10.6 Authenticated RCE via condition.config","details":"Craft CMS has an authenticated remote code execution issue in the control panel element-search condition handling.\n\nCraft 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.\n\nBecause `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.\n\nThe 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.\n\n## Preconditions\n\n- The attacker needs an authenticated Craft control panel session.\n- A valid CSRF token is required.\n\n## Impact\n\nAn 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.\n\nPotential attacker impact:\n- Execute operating system commands as the PHP/web user.\n- Read Craft secrets, environment variables, and application configuration.\n- Access database credentials and stored site content.\n- Modify site content, users, and application state.\n- Pivot to internal services reachable from the Craft host or container.\n- Cause denial of service or establish persistence depending on deployment permissions.","published":"2026-08-11T12:17:14.099Z","modified":"2026-08-28T11:30:54.887405924Z","cvss":null,"epss":{"score":0.00447,"percentile":0.38055,"asOf":"2026-09-17"},"cisaKev":null,"exploitsKnown":0,"affectedPackages":[{"ecosystem":"Packagist","name":"craftcms/cms","fixedVersion":"5.10.6"},{"ecosystem":"Packagist","name":"craftcms/cms","fixedVersion":"4.18.2"}],"fix":{"url":"https://github.com/craftcms/cms/commit/353b5d676c88a854c9f6409ad83b837ca0c0e8da","label":"craftcms/cms@353b5d6"},"references":[{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/72xxx/CVE-2026-72778.json"},{"type":"ADVISORY","url":"https://github.com/craftcms/cms/security/advisories/GHSA-265m-7826-wjqm"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-72778"},{"type":"ADVISORY","url":"https://www.vulncheck.com/advisories/craft-cms-rc1-before-authenticated-rce-via-condition-config"},{"type":"WEB","url":"https://github.com/craftcms/cms/commit/353b5d676c88a854c9f6409ad83b837ca0c0e8da"},{"type":"WEB","url":"https://github.com/craftcms/cms/commit/789789dc9e2a4e2f2562f51aaf879fb7757d8340"},{"type":"PACKAGE","url":"https://github.com/craftcms/cms"},{"type":"WEB","url":"https://github.com/craftcms/cms/releases/tag/4.18.2"},{"type":"WEB","url":"https://github.com/craftcms/cms/releases/tag/5.10.6"}],"provenance":{"sources":["OSV.dev","FIRST.org (EPSS)"],"lastVerified":"2026-08-28T11:30:54.887405924Z"}}