CVE-2026-79991

Authenticated SQL Injection via nested eager-loading criteria

State
Published
Severity
7.1 High
Published
Sep 2, 2026
Updated
Sep 2, 2026
Reserved
Aug 25, 2026

Read the record on cve.org

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.

Scores

CVSSScoreVectorSource
4.07.1 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:L/SC:N/SI:N/SA:NHackrate

Weaknesses

  • CWE-89 Improper neutralization of special elements used in an SQL command ('SQL injection')

Affected Products

ProductVersions
cmscraftcms
  • 5.0.0-RC1 to before 5.10.13Affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.