Junglewise Threat Intelligence

CVE-2026-45831: ChromaDB cross-tenant access bypass in SimpleRBACAuthorizationProvider

CVE-2026-45831 · Severity: high · CVSS 8.8 · Published 2026-06-12

Executive brief

ChromaDB's built-in authorization system for role-based access control fails to enforce tenant and collection boundaries. Any authenticated user with a valid permission (such as "read" or "write") can access data across all tenants and collections, not just those they should have access to. In multi-tenant environments, this allows attackers to read, modify, or delete other customers' vector embeddings and documents without authorization.

Technical details

The vulnerability exists in ChromaDB's SimpleRBACAuthorizationProvider (chromadb/auth/simple_rbac_authz/__init__.py), which is the only production authorization provider shipped with ChromaDB. The authorize_or_raise() method receives an AuthzResource parameter containing tenant, database, and collection context, but only checks whether the user's action set contains the requested action—it never validates that the permission applies to the specific tenant, database, or collection being accessed. The vulnerability is compounded by V1 FastAPI endpoints that pass None for tenant and database parameters to the authorization layer. An authenticated attacker with any valid permission (e.g., collection:add) can exploit this to perform cross-tenant read, write, update, and delete operations on any tenant's collections via direct API calls. The fix requires porting resource-aware authorization checks from the Rust frontend or modifying SimpleRBAC to validate resource.tenant and resource.collection against user grants. As of the advisory date, no patched version has been released and the latest PyPI package (1.5.9) remains vulnerable.

Affected products

  • ChromaDB chromadb 0.5.0 to 1.5.9

Timeline

  • 2026-02-17: disclosed: Initial disclosure to ChromaDB via their security page
  • 2026-06-12: advisory: Published as CVE-2026-45831 and GHSA-xph7-9rjv-w5fr
  • 2026-08-15: other: Security issue #7588 opened on GitHub documenting the vulnerability in PyPI 1.5.9 and HEAD
  • 2026-08-18: other: Pull request #7602 opened with fix to enforce AuthzResource tenant scope

References

Related threats