GitHub Advisoryadvisory · Packagist

GHSA-xxpx-f366-4xpq Craft CMS: Authorization bypass: view-only Categories user can modify category structure via structures/move-element

MEDIUM Published 2026-08-06 Modified 2026-09-01 Official page ↗
Aliases
CVE-2026-72785
Ecosystem
Packagist
Packages
craftcms/cms
Severity
Moderate
CVSS vector
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
Weaknesses
CWE-863
Reviewed
2026-08-06

Affected packages

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

Description

A control-panel user who holds only the viewCategories permission for a category group (and not saveCategories) can permanently modify that group's category structure — reordering and re-parenting categories via the structures/move-element action. A read-time authorization grant that a write endpoint later trusts. For categories, the structureEditable flag is computed from the view permission (`src/elements/Category.php:205`) instead of the save permission (entries correctly use saveEntries — `src/elements/Entry.php:341`). When the read-only category index renders, `craft\base\Element::indexHtml()` calls `Craft::$app->getSession()->authorize('editStructure:');` StructuresController then authorizes the structure-mutating action solely on that session grant, with no canSave re-check. Verified on Craft CMS 5.10.5. Same class as the moderate-severity authorization bypasses fixed in 5.10.3 and 5.10.5; this is a distinct, unpatched instance. Impact A low-privileged, authenticated user (view-only on a category group) can persistently alter the sibling ordering and parent/child nesting of the category taxonomy. Because a category’s URI is derived from its position in the structure (ancestor slugs), moving a category changes its URL and the URLs of its descendants, and can corrupt any navigation/menus built from the category tree. This is an integrity/broken access-control issue: content that the user has no permission to modify is being modified. No confidentiality impact and no RCE; scope is content/taxonomy integrity.

Related

Alias · CVE (1)

  • CVE-2026-72785 Craft CMS 5.0.0-RC1 through 5.10.5 contains an incorrect authorization vulnerability. vulnerability

Weakness · CWE (1)

  • CWE-863 Incorrect Authorization weakness

References