ZeroHour

CVE-2026-86731

large

Missing admin guard in Craft CMS user-activation enables privilege escalation

CVSS 4.0
7.1 high
EPSS
<1%p8
Published
()
Modified
AI analysis

CVE-2026-86731 is a missing-authorization flaw (CWE-862) in Craft CMS 5.0.0-RC1 through 5.10.11, where the control panel's users/activate-user action (UsersController::actionActivateUser) requires the administrateUsers permission but, unlike the mirror action actionDeactivateUser, does not call requireAdmin() when the target user is an administrator. As a result, an authenticated, non-administrator user who holds the administrateUsers permission can activate a pending or deliberately deactivated administrator account. Combined with the ability to reset that account's password, this allows the user to take over an administrator account and escalate their privileges in the CMS. Any Craft CMS 5 deployment in which non-admin users are granted the administrateUsers permission is affected, and the issue is fixed in Craft CMS 5.10.12. There is no known public proof-of-concept, the flaw is not in CISA's KEV catalog, and EPSS assigns roughly a 0.2% probability of exploitation within 30 days.

What to do: Upgrade Craft CMS 5.x deployments to version 5.10.12 or later. Until patched, revoke the administrateUsers permission from non-admin users and audit for pending or deactivated administrator accounts that could be activated and reset. Review recent activation and password-reset activity on administrator accounts for signs of takeover.

Affected
Craft CMS5.0.0-RC1 through 5.10.11 (fixed in 5.10.12)
Estimated exposure
largeroughly 10,000-50,000 Craft CMS 5 sites (estimate) — Public web-technology tracking and vendor adoption figures put Craft CMS in the hundreds of thousands of sites across all versions, but only the subset running the 5.x line that also has at least one non-admin user granted the…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

Craft CMS versions 5.0.0-RC1 through 5.10.11 are missing an admin-target guard in UsersController::actionActivateUser (the users/activate-user action). While the action requires the administrateUsers permission, it does not call requireAdmin() when the targeted user is an administrator, unlike the mirror action actionDeactivateUser. As a result, an authenticated control panel user who is not an administrator but holds the administrateUsers permission can activate a pending or deliberately deactivated administrator account, which can lead to permission escalation when combined with resetting that account's password. The issue is fixed in Craft CMS 5.10.12.

Weakness
CWE-862
Vector
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/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

In the news

No ingested article mentions this CVE yet.