Description
Craft CMS is a content management system (CMS). In versions 5.0.0-RC1 and above prior to 5.9.21, the EntriesController::actionMoveToSection() endpoint gates the destination section only by viewEntries:$section->uid rather than requiring saveEntries permission (the source entry is separately checked via Entry::canMove()). As a result, a low-privileged authenticated control-panel user who can move an entry out of its current section can call moveEntryToSection() to rewrite the entry's sectionId and save it into a section where they have read access but no write access. This breaks the section-level authorization model, letting a user with limited permissions inject content into a protected section and interfere with editorial boundaries, approval workflows, and section-specific business logic. This issue has been fixed in version 5.9.21.
Published: 2026-07-01
Score: 6 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Craft CMS allows a low‑privileged authenticated user to move entries into sections where they only have read access because the move‑to‑section endpoint checks only view permission instead of requiring the higher‑level save permission. This flaw lets the attacker inject content into protected sections, disrupting editorial boundaries, approval workflows, and section‑specific business logic without any elevated privileges. The weakness corresponds to CWE‑284. The vulnerability scores a medium CVSS score of 6, has an EPSS score of < 1%, indicating a very low likelihood of exploitation, and is not present in the CISA KEV catalog. The attack requires an authenticated control‑panel user with permission to move an entry, but not to save entries, and knowledge of target section identifiers. Exploitation could be carried out through the CMS web interface, causing unauthorized content placement and potential integrity and confidentiality breaches of protected sections.

Affected Systems

Craft CMS, versions 5.0.0‑RC1 up to (but not including) 5.9.21.

Risk and Exploitability

The risk for exposed systems is moderate due to a CVSS score of 6, yet the EPSS score of less than 1% suggests that exploitation is currently rare. Because the flaw permits a low‑privileged authenticated user to override section‑level write restrictions, the impact involves potential integrity violations by inserting unauthorized content into protected sections and disrupting editorial processes. The vulnerability is not listed in CISA’s KEV catalog. The likely attack path would involve an attacker logging into the control panel, selecting an entry they can move, and invoking the move endpoint with a target section identifier that they can only view. No external network privilege escalation is required, so the attack vector is limited to authenticated web access within the CMS.

Generated by OpenCVE AI on July 21, 2026 at 12:42 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Craft CMS to version 5.9.21 or later, where the authorization check for moving entries has been corrected.
  • If an upgrade is delayed, remove or restrict the move‑entries permission for roles that should not create or modify content in protected sections; this limits the rights.
  • Consider disabling the move‑to‑section endpoint temporarily or applying a firewall rule to block unauthenticated access to the controller as a precaution.

Generated by OpenCVE AI on July 21, 2026 at 12:42 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-43cq-c2gq-pfpw Craft CMS: Authorization bypass in `entries/move-to-section` via missing target-section save check
History

Thu, 02 Jul 2026 16:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Wed, 01 Jul 2026 23:45:00 +0000

Type Values Removed Values Added
Description Craft CMS is a content management system (CMS). In versions 5.0.0-RC1 and above prior to 5.9.21, the EntriesController::actionMoveToSection() endpoint gates the destination section only by viewEntries:$section->uid rather than requiring saveEntries permission (the source entry is separately checked via Entry::canMove()). As a result, a low-privileged authenticated control-panel user who can move an entry out of its current section can call moveEntryToSection() to rewrite the entry's sectionId and save it into a section where they have read access but no write access. This breaks the section-level authorization model, letting a user with limited permissions inject content into a protected section and interfere with editorial boundaries, approval workflows, and section-specific business logic. This issue has been fixed in version 5.9.21.
Title Craft CMS: Authorization bypass in `entries/move-to-section` via missing target-section save check
Weaknesses CWE-284
References
Metrics cvssV4_0

{'score': 6, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-07-02T15:39:22.626Z

Reserved: 2026-06-04T16:26:05.985Z

Link: CVE-2026-50280

cve-icon Vulnrichment

Updated: 2026-07-02T15:39:19.508Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-07-21T12:45:02Z

Weaknesses