ZeroHour

CVE-2026-92594

large

Improper GraphQL Authorization Leaks User PII in Craft CMS 5

CVSS 4.0
8.7 high
EPSS
Published
()
Modified
AI analysis

Craft CMS 5.0.0-RC1 through versions before 5.11.0 gate the GraphQL draftCreator and revisionCreator fields with only the elements.drafts:read or elements.revisions:read scopes instead of the user-data scope (usergroups.*:read) enforced by Gql::canQueryUsers(), and the resolver returns a raw User element with no per-field authorization. Any client holding just the drafts or revisions scope — or an unauthenticated client, if the operator has enabled the public GraphQL schema with those scopes — can query these fields and harvest the email addresses, usernames, full names, and postal addresses of all draft and revision creators, typically site editors and administrators. No privilege escalation or code execution is involved; the impact is confidentiality of user PII (CWE-200), consistent with the 8.7 high CVSS 4.0 score. All sites running the affected Craft CMS 5.x range are vulnerable in principle, with actual exposure depending on whether a GraphQL schema (public or token-based) grants the drafts or revisions scopes. No public proof-of-concept is known, the flaw is not in CISA's KEV catalog, and no exploitation has been reported; a fix is available in Craft CMS 5.11.0.

What to do: Upgrade to Craft CMS 5.11.0, which fixes the field-level authorization. Until then, remove the elements.drafts:read and elements.revisions:read scopes from the public GraphQL schema and from any API tokens that don't need them, and audit existing GraphQL schemas/tokens for those grants. Check GraphQL access logs for queries requesting draftCreator or revisionCreator fields to detect past PII harvesting.

Affected
Craft CMS5.0.0-RC1 through all versions before 5.11.0
Estimated exposure
largeon the order of 10,000–100,000 Craft CMS 5.x sites, with the actually exploitable subset being only those running GraphQL schemas (public or token) that grant… — Craft CMS's overall installed base is generally estimated in the tens of thousands to ~100k sites; version 5.x is a subset of that, and GraphQL is an opt-in feature whose public schema and token scopes must include…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

Craft CMS 5.0.0-RC1 through versions before 5.11.0 incorrectly authorize the GraphQL draftCreator and revisionCreator fields: instead of requiring the user-data scope enforced by Gql::canQueryUsers() (usergroups.*:read), these fields are gated only on the elements.drafts:read / elements.revisions:read scopes, and their resolver returns a raw User element whose email, username, fullName, and addresses fields have no per-field authorization. A client holding only the drafts or revisions scope — including an unauthenticated client when the operator has enabled the public GraphQL schema with those scopes — can therefore harvest the email addresses, usernames, full names, and postal addresses of all draft/revision creators (typically site editors and administrators). The issue is fixed in 5.11.0.

Weakness
CWE-200
Vector
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

In the news

No ingested article mentions this CVE yet.