CVE-2026-79991 Authenticated SQL Injection via nested eager-loading criteria

High 7.1 Published Updated

Authenticated attackers can bypass site-scope restrictions in Craft CMS GraphQL mutations to create, modify, or delete entries in unauthorized sites.

Exploited in the wild
Not known
Login needed
Any signed-in user
Attackable
Over the internet
Victim action needed
Not needed
Fix
None listed

What is CVE-2026-79991?

CVE-2026-79991 is a high-severity SQL injection vulnerability in craftcms cms, published on 2 Sep 2026. Any signed-in user can exploit it over the network, with no action from the victim.

Official description

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.

Weakness: CWE-89

Which versions are affected by CVE-2026-79991?

How do I fix CVE-2026-79991?

No fix has been published for CVE-2026-79991 yet. Limit exposure of the affected software until one is available.

Use parameterised queries everywhere and never build SQL by joining strings. Upgrade affected software first; a web application firewall only buys time. More about SQL injection.

Is CVE-2026-79991 being exploited?

There is no known exploitation of CVE-2026-79991 in the wild and no public exploit code.

Sources

Also known as GHSA-4mgp-5vf2-7c9m, GHSA-p73g-29f3-m84x.

Is CVE-2026-79991 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free