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

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

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.

Technologies: chromadb (PyPI). Vendors: PyPI.

Quick answers

Is CVE-2026-45831 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-45831 being exploited in the wild.
How severe is CVE-2026-45831?
High severity, with a CVSS score of 8.8, published 12 June 2026.
Which products and versions are affected?
chromadb (PyPI) >= 0.5.0, <= 1.5.9, ECOSYSTEM:introduced=0.5.0,last_affected=1.5.9.
Is there a fix for CVE-2026-45831?
No fixed version is recorded yet. Check the vendor's advisory in the references below. If you run it, Junglewise drafts a mitigation that fits your setup and applies it once you approve, with senior security engineers behind it.
How is CVE-2026-45831 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-45831?
Check whether you run chromadb (PyPI) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

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

Identifiers

  • CVE-2026-45831
  • GHSA-xph7-9rjv-w5fr
  • PYSEC-2026-3815

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

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.