ZeroHour

CVE-2026-84798

moderate

Missing authorization check in Craft CMS allows unauthorized entry deletion

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

Craft CMS versions 5.0.0-RC1 through 5.10.10 have a missing authorization check (CWE-862) in ElementsController::actionDeleteForSite(): the method loads the element with checkForProvisionalDraft enabled and performs the deletion permission check against the user's own provisional draft, which only verifies draft ownership rather than deletion rights on the live entry. An authenticated backend user who holds viewEntries, viewPeerEntries, saveEntries, savePeerEntries, and editSite permissions but lacks the deleteEntriesForSite permission can trigger the delete-for-site action, and the deletion propagates to the canonical element without a second permission check. The attacker gains the ability to hard-delete a canonical entry's site record and, for single-site entries, the entire element and its content, which is irrecoverable because it bypasses Craft's recycle bin. Any Craft CMS deployment on an affected 5.x version that grants content-editing permissions to non-admin users (common in multi-author editorial teams) is affected; the attacker must already have an authenticated account, so it is not exploitable remotely without credentials. No public proof of concept is known, the flaw is not in CISA's KEV, and EPSS estimates only a 0.2% probability of exploitation in the next 30 days.

What to do: Upgrade to Craft CMS 5.10.11 or later. Until upgraded, audit backend user permission sets for anyone granted view/save (including peer-entry) permissions plus editSite but not deleteEntriesForSite, and consider temporarily revoking editSite from such users. Because this deletion bypasses the recycle bin and is unrecoverable, review recent delete-for-site activity by non-admin users and confirm database backups are current.

Affected
Pixel & Tonic Craft CMS>= 5.0.0-RC1, < 5.10.11
Estimated exposure
moderateon the order of 10,000-100,000 Craft CMS 5.x sites — Craft CMS's overall installed base is on the order of 100,000+ sites and the 5.x line is the current actively maintained major version, with multi-author permission setups (editors who can save but not delete) being a common deployment…

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 and < 5.10.11 fail to perform an independent authorization check in ElementsController::actionDeleteForSite(). The method loads an element with checkForProvisionalDraft enabled and runs the deletion authorization check against the user's own provisional draft (which only verifies draft ownership), then propagates the deletion to the canonical element without re-checking permissions. As a result, an authenticated user who has viewEntries, viewPeerEntries, saveEntries, savePeerEntries, and editSite permissions but lacks the deleteEntriesForSite permission can hard-delete a canonical entry's site record (and, for single-site entries, the full element and content), which is irrecoverable via Craft's recycle bin.

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