Craft CMS: GraphQL Asset Mutation Privilege Escalation
Impact
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.
Source excerpt · OSVAffected packages
Start with the recorded fix for your release branch. Check your installed version and test compatibility before upgrading. Fixing this advisory does not rule out other vulnerabilities in the release.
| Affected range | Recorded fix |
|---|---|
| From 5.0.0-RC1 before 5.9.0-beta.1Ecosystem versions | 5.9.0-beta.1 |
| From 4.0.0-RC1 before 4.17.0-beta.1Ecosystem versions | 4.17.0-beta.1 |
Version evidence: OSV · GHSA-fxp3-g6gw-4r4v
View original version evidence (374 explicit versions)
Original source description
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
References
- Security advisory github.com/craftcms/cms/security/advisories/GHSA-fxp3-g6gw-4r4v
- Security advisory nvd.nist.gov/vuln/detail/CVE-2026-25497
- Patch github.com/craftcms/cms/commit/ac7edf868c1a81fd9c4dc49d3b3edf1cce113409
- Source reference github.com/craftcms/cms
- Release notes github.com/craftcms/cms/releases/tag/4.17.0-beta.1
- Release notes github.com/craftcms/cms/releases/tag/5.8.22
- Release notes github.com/craftcms/cms/releases/tag/5.9.0-beta.1