GitHub Advisoryadvisory · Packagist

GHSA-6mrr-q3pj-h53w Craft CMS: Unauthenticated Users Can Perform Restricted Project Config Sync Operations

MEDIUM Published 2026-03-24 Modified 2026-03-25 Official page ↗
Aliases
CVE-2026-33159
Ecosystem
Packagist
Packages
craftcms/cms
Severity
Moderate
CVSS vector
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N
Weaknesses
CWE-306, CWE-862
Reviewed
2026-03-24

Affected packages

• Packagist craftcms/cms: >= 5.0.0-RC1, < 5.9.14 → fixed in 5.9.14 • Packagist craftcms/cms: >= 4.0.0-RC1, < 4.17.8 → fixed in 4.17.8

Description

Summary Guest users can access Config Sync updater `index`, obtain signed `data`, and execute state-changing Config Sync actions (`regenerate-yaml`, `apply-yaml-changes`) without authentication. Details `ConfigSyncController` extends `BaseUpdaterController`, and the base updater is anonymously accessible for control panel requests. `index` emits signed updater state (`data`), which can be reused by guests in subsequent requests. Sensitive actions that are reachable via this method are `actionApplyYamlChanges`, `actionRegenerateYaml`, `applyExternalChanges`, and `regenerateExternalConfig`. Reproduction steps 1. Guest POST to: http POST /admin/actions/config-sync/index 2. Extract data from returned JS state: Craft.updater = ... setState({"data":"", ...}); 3. Reuse data as a guest: ``` POST /admin/actions/config-sync/regenerate-yaml data=&= ``` or ``` POST /admin/actions/config-sync/apply-yaml-changes data=&= ``` 4. Observe completed response and state/file changes. Impact Unauthenticated users can execute project configuration sync operations that should be restricted to trusted admin/deployment contexts. Depending on the pending YAML/config state, this can cause unauthorized config state transitions and a service integrity risk. Resources https://github.com/craftcms/cms/commit/7f0ead833f7

Related

Alias · CVE (1)

  • CVE-2026-33159 Craft CMS is a content management system (CMS). vulnerability

Weakness · CWE (2)

  • CWE-306 Missing Authentication for Critical Functionality weakness
  • CWE-862 Missing Authorization weakness

References