Medium severity · published Jul 1, 2026
CVE-2026-50283
Craft CMS: Unauthorized Deletion of Source Assets During File Replacement
5.3
CVSS
0.4%
EPSS
No
On KEV
Description
Craft CMS is a content management system (CMS). Versions 5.0.0-RC1 through 5.9.20, and 4.0.0-RC1 through 4.17.13 contain an authorization issue in the AssetsController::actionReplaceFile that can delete a source asset without source delete permission by supplying both assetId and sourceAssetId. AssetsController::actionReplaceFile() supports replacing a target asset file using another existing asset as the source. The action loads: assetId -> $assetToReplace and sourceAssetId -> $sourceAsset, then enforces replace permissions using ($assetToReplace ?: $sourceAsset). When both IDs are provided, this expression resolves to the target asset so no permission check is performed against the source asset volume. When both assets are present, Craft copies the source file into the target and then deletes the source asset. There is no deletion check for for the source asset. An authenticated user who can replace files in one volume can delete assets in another volume where they do not have delete permission, as long as they can obtain a sourceAssetId, leading to broken content references and data loss. This issue has been fixed in versions 4.17.14 and 5.9.21.
Exploitation
Is it being used?
Exploit prediction (EPSS)0.4% · higher than 30% of CVEs
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
CM
cms · craftcms
>= 5.0.0-RC1, < 5.9.21; >= 4.0.0-RC1, < 4.17.14 · source: vendor
Affected product
CM
cms
craftcms
More from cms
10.0
CVE-2025-32432
Craft CMS Allows Remote Code Execution
9.8
CVE-2024-56145
RCE when PHP `register_argc_argv` config setting is enabled in craftcms/cms
8.1
CVE-2025-23209
Potential RCE with a compromised security key in craft/cms
9.8
CVE-2026-112776
Craft CMS 5.0.0 before 5.11.0 GraphQL Site-Scope Bypass via Mutations
9.8
CVE-2026-84795
Craft CMS before 5.10.11 Authentication Bypass via Admin Flag Inheritance