github_osv/GHSA-fxp3-g6gw-4r4v
Craft CMS: GraphQL Asset Mutation Privilege Escalation
There is a Privilege Escalation vulnerability in Craft CMS’s GraphQL API that allows an authenticated user with write access to one asset volume to escalate their privileges and modify/transfer assets belonging to any other volume, including restricted or private volumes to which they should not have access.
## Summary:
Type: Privilege Escalation (CWE-269)
Affected: Craft CMS 5.x (likely affects 4.x and 3.x as well)
Location: `src/gql/resolvers/mutations/Asset.php lines 57-107`
## Root Cause:
The saveAsset GraphQL mutation validates authorization against the schema-resolved volume but fetches the target asset by ID without verifying that the asset belongs to the authorized volume. This allows unauthorized cross-volume asset modification and transfer.
## Impact:
- Transfer confidential assets from private volumes to public volumes (data exfiltration)
- Modify asset metadata in restricted volumes
- Bypass multi-tenant isolation in shared hosting environments
gitlab/packagist/craftcms/cms/CVE-2026-25497
Craft CMS: GraphQL Asset Mutation Privilege Escalation
Type: Privilege Escalation (CWE-269)
Affected: Craft CMS 5.x (likely affects 4.x and 3.x as well)
Location: `src/gql/resolvers/mutations/Asset.php lines 57-107`