{"id":"CVE-2026-55866","summary":"SpiceDBChecks involving relations with caveats can result in unconditional permission when conditional permission is expected","details":"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.","aliases":["GHSA-4vrg-r928-h5vv","GO-2026-5133"],"modified":"2026-09-16T03:47:06.396724180Z","published":"2026-09-14T17:23:56.428Z","related":["openSUSE-SU-2026:21483-1"],"database_specific":{"cna_assigner":"GitHub_M","cwe_ids":["CWE-863"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/55xxx/CVE-2026-55866.json"},"references":[{"type":"WEB","url":"https://github.com/authzed/spicedb/releases/tag/v1.54.0"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/55xxx/CVE-2026-55866.json"},{"type":"ADVISORY","url":"https://github.com/authzed/spicedb/security/advisories/GHSA-4vrg-r928-h5vv"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-55866"},{"type":"FIX","url":"https://github.com/authzed/spicedb/commit/44a1c9f266bd8a884bfebfc27181210302541b9b"},{"type":"FIX","url":"https://github.com/authzed/spicedb/commit/ccde792fc48750740d025d4286d5c2c88614cd30"},{"type":"FIX","url":"https://github.com/authzed/spicedb/pull/3188"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/authzed/spicedb","events":[{"introduced":"0"},{"fixed":"44a1c9f266bd8a884bfebfc27181210302541b9b"},{"fixed":"ccde792fc48750740d025d4286d5c2c88614cd30"},{"fixed":"3647a6e0dc353161f93ca3e520dc4342bde7af04"}],"database_specific":{"extracted_events":[{"introduced":"1.34.1"},{"fixed":"1.54.0"}],"source":["AFFECTED_FIELD","REFERENCES"]}}],"versions":["v1.53.0","v1.52.0","v1.51.0","v1.50.0","v1.49.2","v1.49.1","v1.49.0","v1.48.0","v1.47.1","v1.47.0","v1.46.2","v1.46.1","v1.46.0","v1.45.4","v1.45.3","v1.45.2","v1.45.1","v1.45.0","v1.44.4","v1.44.3","v1.44.0","v1.43.0","v1.42.1","v1.42.0","v1.41.0","v1.40.1","v1.40.0","v1.39.0","v1.38.0","v1.37.0","v1.35.3","v1.35.2","v1.35.1","v1.35.0","v1.34.0","v1.33.0","v1.32.0","v1.31.0","v1.30.0","v1.29.1-rc1","v1.29.1","v1.29.0","v1.28.0-rc1","v1.28.0","v1.27.1-rc1","v1.27.0","v1.27.0-rc1","v1.26.0-rc2","v1.26.0","v1.26.0-rc1","v1.25.0","v1.25.0-rc4","v1.25.0-rc3","v1.25.0-rc2","v1.25.0-rc1","v1.24.0-rc3","v1.24.0","v1.24.0-rc2","v1.24.0-rc1","v1.23.1-rc1","v1.23.1","v1.23.0-rc4","v1.23.0","v1.23.0-rc3","v1.23.0-rc2","v1.23.0-rc1","v1.22.2","v1.22.1-rc1","v1.22.1","v1.22.0","v1.22.0-rc8","v1.22.0-rc7","v1.22.0-rc6","v1.22.0-rc5","v1.22.0-rc4","v1.22.0-rc2","v1.22.0-rc1","v1.21.0","v1.21.0-rc1","v1.19.0","v1.18.1","v1.17.0","v1.16.2","v1.16.1","v1.16.0","v1.15.0","v1.14.1","v1.14.0","v1.13.0","v1.12.0","v1.11.0","v1.10.0","v1.9.0","v1.8.0","v1.7.1","v1.7.0","v1.5.0","v1.4.0","v1.3.0","v1.2.0","v1.1.0","v1.0.0","v0.0.3","v0.0.2","v0.0.1"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-55866.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N"}]}