CVE-2026-55866
Description
SpiceDB is an open source database system for creating and managing security-critical application permissions. From 1.34.0 until 1.54.0, SpiceDB can return PERMISSIONSHIP_HAS_PERMISSION instead of PERMISSIONSHIP_CONDITIONAL_PERMISSION or PERMISSIONSHIP_NO_PERMISSION because checkRequestToKey() and checkRequestToKeyWithCanonical() in internal/dispatch/keys/computed.go omit CheckHints when constructing dispatch Check cache keys. The incorrect result requires a permission combining relations with intersection or exclusion, a subject reachable through caveated and non-caveated branches, LookupResources with a context parameter running concurrently with CheckPermission or CheckBulkPermissions for the same resource and subject, and an enabled dispatch result cache. Under these conditions, a result computed for one hint set can poison the cache entry used by a semantically different authorization check, allowing permission without satisfying the caveat. This issue is fixed in version 1.54.0.
References
- https://github.com/authzed/spicedb/commit/44a1c9f266bd8a884bfebfc27181210302541b9b
- https://github.com/authzed/spicedb/commit/ccde792fc48750740d025d4286d5c2c88614cd30
- https://github.com/authzed/spicedb/pull/3188
- https://github.com/authzed/spicedb/releases/tag/v1.54.0
- https://github.com/authzed/spicedb/security/advisories/GHSA-4vrg-r928-h5vv