Keystone is an open source headless CMS for Node.js — built with GraphQL and React. When ui.isAccessAllowed
is set as undefined
, the adminMeta
GraphQL query is publicly accessible (no session required). This is different to the behaviour of the default AdminUI middleware, which by default will only be publicly accessible (no session required) if a session
strategy is not defined. This vulnerability does not affect developers using the @keystone-6/auth
package, or any users that have written their own ui.isAccessAllowed
(that is to say, isAccessAllowed
is not undefined
). This vulnerability does affect users who believed that their session
strategy will, by default, enforce that adminMeta
is inaccessible by the public in accordance with that strategy; akin to the behaviour of the AdminUI middleware. This vulnerability has been patched in @keystone-6/core
version 5.5.1
. Users are advised to upgrade. Users unable to upgrade may opt to write their own isAccessAllowed
functionality to work-around this vulnerability.
The product does not perform an authorization check when an actor attempts to access a resource or perform an action.
Name | Vendor | Start Version | End Version |
---|---|---|---|
Keystone | Keystonejs | * | 5.5.1 (excluding) |
Assuming a user with a given identity, authorization is the process of determining whether that user can access a given resource, based on the user’s privileges and any permissions or other access-control specifications that apply to the resource. When access control checks are not applied, users are able to access data or perform actions that they should not be allowed to perform. This can lead to a wide range of problems, including information exposures, denial of service, and arbitrary code execution.