Description (CNA)
Craft CMS GraphQL entry mutation resolvers (saveEntry, deleteEntry) read siteIddirectly from$argumentswithout passing throughArgumentManagerprepareArguments(), which is the function that enforces site-scope filtering via array_intersect against the GraphQL schema’s allowed sites. The query path (ElementResolverprepareElementQuery) correctly calls prepareArguments()`, so queries to unauthorized sites return empty. But mutations bypass this entirely — an attacker with a token scoped to Site A can create, modify, or delete entries in Site B by passing siteId in the mutations argument.
Affected (CNA)
| Vendor / product | Versions |
|---|---|
| craftcms / cms | affected 5.0.0-RC1 before 5.10.13 |
CWE
CWE-89
References
- https://www.hckrt.com/hacktivity/HCKRT-B5BSMM
- https://github.com/craftcms/cms/releases/tag/5.10.13
- https://github.com/craftcms/cms
- https://github.com/craftcms/cms/security/advisories/GHSA-4mgp-5vf2-7c9m
ADP enrichment
No English description supplied.
No references supplied.