Loading...
Skip to main content

CVE-2026-72778

HIGH

Craft CMS: Authenticated RCE via `condition.config` JSON cleanse bypass

Published August 6, 2026Updated August 12, 2026Source: osv

Summary

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.

Remediation

Upgrade to the fixed version using your package manager.

Composer
Update craftcms/cms to 4.18.2 or later
composer require "craftcms/cms:^4.18.2"
Composer
Update craftcms/cms to 5.10.6 or later
composer require "craftcms/cms:^5.10.6"

After upgrading, run your dependency scanner again to confirm the vulnerability is resolved.

Affected Packages (2)

PackageEcosystemAffectedFixed In
craftcms/cms
packagist
4.0.0, 4.0.0-RC1, 4.0.0-RC2, 4.0.0-RC3 (+248 more)4.18.2
craftcms/cms
packagist
5.0.0, 5.0.0-RC1, 5.0.1, 5.0.2 (+174 more)5.10.6

Vulnerability Classification

Common Weakness Enumeration (CWE) identifiers for this vulnerability type.

CVSS Score Breakdown

What the CVSS (Common Vulnerability Scoring System) 8.8 score means for each attack dimension.

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Confidentiality
Integrity
Availability

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

Frequently Asked Questions

What is CVE-2026-72778?
Craft CMS: Authenticated RCE via `condition.config` JSON cleanse bypass This vulnerability has been assigned a severity rating of HIGH (CVSS score: 8.8/10).
How do I check if my project is affected by CVE-2026-72778?
CVE-2026-72778 affects craftcms/cms. Use GeekWala's free vulnerability scanner to check your dependencies against CVE-2026-72778 and 200,000+ other known vulnerabilities.

Severity & Exploitability

CVSS Score
8.8

High exploitability or significant impact. Prioritize remediation within days.

Also Known As

GHSA-265m-7826-wjqm

Related CVEs

Check if you're affected

Scan your dependencies to see if this vulnerability affects your projects.

Scan Your Dependencies