# CVE-2026-79990: Craft CMS GraphQL entry mutation site scope bypass

Source: https://junglewise.ai/threats/cve-2026-79990-craft-cms-graphql-entry-mutation-site-scope-bypass  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-09-02. Updated: 2026-09-25  
License: CC BY 4.0 with a link back

CVE-2026-79990 · Severity: info · Published 2026-09-02

Craft CMS, a popular headless content management system, uses GraphQL to manage content across multiple sites. A flaw in the saveEntry and deleteEntry mutations allows an attacker with API access to one site to create, modify, or delete content in other sites by directly specifying a different site ID. This bypasses the intended multi-tenant access controls, potentially compromising content integrity and confidentiality across separate site instances.

## Quick answers

**Is CVE-2026-79990 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-79990 being exploited in the wild.

**How severe is CVE-2026-79990?** Informational severity, published 2 September 2026.

**Which products and versions are affected?** Craft CMS <UNKNOWN>.

**Is there a fix for CVE-2026-79990?** No fixed version is recorded yet. Check the vendor's advisory in the references below. If you run it, Junglewise drafts a mitigation that fits your setup and applies it once you approve, with senior security engineers behind it.

**How is CVE-2026-79990 attacked?** It is attacked over the network, in a web application.

**Am I affected by CVE-2026-79990?** Check whether anything you run is named in the advisory. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## Technical details

The vulnerability is an authorization bypass in Craft CMS's GraphQL entry mutation resolvers. The saveEntry and deleteEntry mutations read the siteId parameter directly from $arguments without invoking the ArgumentManager's prepareArguments() method, which normally enforces site-scope filtering via array_intersect. In contrast, query resolvers (ElementResolver) correctly call prepareArguments(), ensuring unauthorized site access is blocked. An attacker with a GraphQL token scoped to Site A can bypass this check by passing a siteId belonging to Site B in the mutation payload. No elevated privileges or user interaction is required beyond having a valid API token. The patch requires mutations to consistently apply ArgumentManager's site-filtering logic before processing siteId arguments.

## Affected products

- Craft CMS <UNKNOWN>

## Timeline

- 2026-09-02: disclosed

## References

- [https://packagist.org/](https://packagist.org/)
- [https://github.com/craftcms/cms](https://github.com/craftcms/cms)
