HighGHSA-fxp3-g6gw-4r4vCVE-2026-25497

Craft CMS: GraphQL Asset Mutation Privilege Escalation

Published 9 Feb 2026 · Updated 22 Feb 2026

Affected packages

craftcms/cmsComposer
Affected
>=5.0.0-RC1 <5.9.0-beta.1
Fixed in
5.9.0-beta.1
Update to the fixed version for your release line, for example:composer require craftcms/cms:^5.9.0-beta.1
craftcms/cmsComposer
Affected
>=4.0.0-RC1 <4.17.0-beta.1
Fixed in
4.17.0-beta.1
Update to the fixed version for your release line, for example:composer require craftcms/cms:^4.17.0-beta.1

Details

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

Is GHSA-fxp3-g6gw-4r4v in any of your client repos?

Checking one package by hand is fine. Checking it across forty client projects is not. NPMscan reads the lockfiles in every GitHub repo you pick, finds each project with an affected craftcms/cms, and gives you the command that fixes it.

References

Advisory data from OSV.dev (opens OSV.dev in a new tab), refreshed daily.