Skip to main content

Craft CMS CVE-2026-50279

| EUVDEUVD-2026-41214 HIGH
Improper Authorization (CWE-285)
2026-07-02 security-advisories@github.com GHSA-qq2c-2q8j-jh27
7.6
CVSS 4.0 · Vendor: github
Share

Severity by source

Vendor (github) PRIMARY
7.6 HIGH
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
vuln.today AI
5.3 MEDIUM

AC:H because the attacker must already be an existing author of the target entry; PR:L for the required low-privileged session; impact is integrity-only authorship spoofing, so C:N/I:H/A:N.

3.1 AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:H/A:N
4.0 AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (github).

CVSS VectorVendor: github

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
X

Lifecycle Timeline

2
Patch available
Jul 02, 2026 - 20:17 EUVD
Analysis Generated
Jul 02, 2026 - 00:28 vuln.today

DescriptionCVE.org

Craft CMS is a content management system (CMS). IN versions 5.0.0-RC1 and above prior to 5.9.21, theEntriesController::actionSaveEntry() performs entry-edit permission checks before request-controlled author changes are applied to the model, allowing for authorship spoofing. The subsequent author mutation path accepts attacker-supplied authors / author parameters and allows the change when the current user is one of the old authors. Because the controller does not re-run authorization after mutating the author list, a low-privileged user can reassign an entry’s authorship to another user without holding the dedicated peer-author-change permission. This issue has been fixed in version 5.9.21.

AnalysisAI

Authorization bypass in Craft CMS versions 5.0.0-RC1 through 5.9.20 lets a low-privileged authenticated user spoof entry authorship by reassigning an entry's author to an arbitrary user without holding the dedicated peer-author-change permission. Because EntriesController::actionSaveEntry() checks edit permissions before applying request-controlled author changes and never re-runs authorization after mutating the author list, any existing author of an entry can hijack attribution. No public exploit has been identified at time of analysis; the flaw is fixed in 5.9.21.

Technical ContextAI

Craft CMS is a PHP-based content management system. The root cause is CWE-285 (Improper Authorization): a check-before-mutation ordering flaw in the entry-save request lifecycle. EntriesController::actionSaveEntry() first validates that the current user may edit the entry, then binds attacker-supplied 'authors'/'author' parameters onto the entry model. The subsequent author-mutation path permits the change whenever the current user is one of the old authors, but the controller omits a fresh authorization pass for the sensitive peer-author-change privilege after the model is mutated, so that dedicated permission is never enforced.

RemediationAI

Vendor-released patch: upgrade Craft CMS to version 5.9.21 or later, which re-runs authorization after author mutation and enforces the peer-author-change permission. Refer to advisory GHSA-qq2c-2q8j-jh27 (https://github.com/craftcms/cms/security/advisories/GHSA-qq2c-2q8j-jh27) and commit 9cc493be8b414d7116c7f2bc2a6d0926e73f1248 for specifics. Where immediate upgrade is not possible, reduce the number of users granted co-authorship on sensitive entries and tighten multi-author assignments so fewer accounts satisfy the 'existing author' precondition, and monitor entry-revision and audit logs for unexpected author reassignments; these controls shrink exposure but do not close the underlying authorization gap, which only the 5.9.21 update resolves.

Share

CVE-2026-50279 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy