Executive brief
Keystone is a Node.js-based headless CMS and GraphQL API platform. A configuration flaw allows the adminMeta GraphQL query to be publicly accessible without authentication when ui.isAccessAllowed is not explicitly defined, exposing administrative metadata to unauthorized users.
Technical details
This is an authorization bypass (CWE-862) in the adminMeta GraphQL query handler. When the ui.isAccessAllowed configuration option is undefined (not set by the developer), the query defaults to public access instead of inheriting the session strategy's default behavior. The vulnerability requires no authentication or user interaction and is reachable over the network. An attacker can query adminMeta to retrieve administrative metadata. The vulnerability is fixed in @keystone-6/core version 5.5.1 and later; developers can also implement a custom isAccessAllowed function as a workaround.
Affected products
- Keystone @keystone-6/core <5.5.1
Timeline
- 2023-08-15: disclosed
- 2023-08-15: patched: Fixed in version 5.5.1