CVE-2020-6165 Limited queries break CanViewPermissionChecker
- Medium (?)
- Versions Affected:
- silverstripe/graphql: ^3.2, silverstripe/recipe-cms: ^4.5.0
- Versions Fixed:
- silverstripe/graphql: 3.2.4, silverstripe/graphql: 3.3.0
- Release Date:
The automatic permission checking mechanism in the
silverstripe/graphql module does not provide complete protection against lists that are limited (e.g. through pagination), resulting in records that should fail the permission check being added to the final result set.
GraphQL endpoints are configured by default through the CMS (e.g. for assets), but the
admin/graphql endpoint is access protected by default. This limits the vulnerability to users with access to the CMS, but still applies when those authenticated users have limited permissions (e.g. where viewing records exposed through
admin/graphql require administrator permissions).
Where custom GraphQL endpoints have been be configured for a specific implementation (usually under
/graphql), this vulnerability could also be exploited through unauthenticated requests.
This vulnerability only applies for reading records it does not allow unauthorised changing of records.
If your project implements custom GraphQL queries returning a query-limited result set, you might have to validate that those queries still work as expected and adjust them if they don't.
Review the 4.5.3 changelogs or the 4.6.0 changelogs for additional details on how to upgrade your project.
Base CVSS Score: 5.3
CWP CVSS Score: 5.3
Reporter: Matthias Leutenegger, CEO, Syntro GmbH and Rob Ingram