CVE-2026-45833: ChromaDB: RCE via trust_remote_code in collection update
GHSA-36p7-vc44-83pfHIGHCISA: ATTENDChromaDB versions 0.4.17 and later contain a code injection flaw that allows any authenticated user holding UPDATE_COLLECTION permission to execute arbitrary code on the server by supplying a malicious model repository URL with trust_remote_code set to true in the collection update API. The blast radius is significant: ChromaDB is a foundational vector store in a large share of production RAG architectures, so server compromise directly threatens the data pipelines feeding your LLM stack—including exfiltration of all stored embeddings and their source documents. Although no public exploit or CISA KEV entry exists yet, the trust_remote_code attack pattern is extensively documented in the ML ecosystem and trivial to operationalize once an attacker holds valid credentials, making the effective exploitation bar lower than the authentication prerequisite suggests. Organizations should immediately audit UPDATE_COLLECTION permission grants, enforce trust_remote_code=false at the configuration layer, isolate ChromaDB from direct internet exposure, and patch to a fixed release as soon as it is available from the vendor.
What is the risk?
High urgency despite the authentication requirement. UPDATE_COLLECTION is a routine permission held by developers, integration service accounts, and CI/CD pipelines—all common targets for credential theft or insider abuse. Once that threshold is crossed, exploitation is deterministic: trust_remote_code=true is a deliberate design mechanism that bypasses all server-side code validation, making the payload delivery and execution reliable with no further bypass needed. The CVE was published on 2026-06-12 with no EPSS data yet, but CWE-94 code injection exploits in popular ML tooling have historically seen rapid weaponization. ChromaDB's prevalence across RAG stacks in enterprises adopting generative AI amplifies the organizational reach of a single exploited instance.
How does the attack unfold?
What systems are affected?
| Package | Ecosystem | Vulnerable Range | Patched |
|---|---|---|---|
| ChromaDB | pip | >= 0.4.17, <= 1.5.9 | No patch |
Do you use ChromaDB? You're affected.
How severe is it?
What is the attack surface?
What should I do?
5 stepsImmediate: Set trust_remote_code=false globally in ChromaDB configuration and implement API-layer input validation to reject any collection update request containing a model repository URI or the trust_remote_code parameter.
Permission audit: Enumerate all accounts with UPDATE_COLLECTION permission; revoke from non-essential service accounts and developer accounts in production; enforce least-privilege.
Network segmentation: Ensure ChromaDB API ports are not directly internet-reachable; place behind an authenticated reverse proxy or API gateway with request logging.
Patch: Monitor the ChromaDB GitHub repository and the HiddenLayer advisory (https://www.hiddenlayer.com/sai-security-advisory/2026-06-chromadb-5) for a fixed release; upgrade immediately upon availability.
Detection: Alert on any UPDATE_COLLECTION API calls that include model repository fields or the trust_remote_code parameter; enable full request-body logging for the collection update endpoint and ship to SIEM.
What does CISA's SSVC say?
Source: CISA Vulnrichment (SSVC v2.0). Decision based on the CISA Coordinator decision tree.
How is it classified?
Which compliance frameworks are affected?
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2026-45833?
ChromaDB versions 0.4.17 and later contain a code injection flaw that allows any authenticated user holding UPDATE_COLLECTION permission to execute arbitrary code on the server by supplying a malicious model repository URL with trust_remote_code set to true in the collection update API. The blast radius is significant: ChromaDB is a foundational vector store in a large share of production RAG architectures, so server compromise directly threatens the data pipelines feeding your LLM stack—including exfiltration of all stored embeddings and their source documents. Although no public exploit or CISA KEV entry exists yet, the trust_remote_code attack pattern is extensively documented in the ML ecosystem and trivial to operationalize once an attacker holds valid credentials, making the effective exploitation bar lower than the authentication prerequisite suggests. Organizations should immediately audit UPDATE_COLLECTION permission grants, enforce trust_remote_code=false at the configuration layer, isolate ChromaDB from direct internet exposure, and patch to a fixed release as soon as it is available from the vendor.
Is CVE-2026-45833 actively exploited?
No confirmed active exploitation of CVE-2026-45833 has been reported, but organizations should still patch proactively.
How to fix CVE-2026-45833?
1. Immediate: Set trust_remote_code=false globally in ChromaDB configuration and implement API-layer input validation to reject any collection update request containing a model repository URI or the trust_remote_code parameter. 2. Permission audit: Enumerate all accounts with UPDATE_COLLECTION permission; revoke from non-essential service accounts and developer accounts in production; enforce least-privilege. 3. Network segmentation: Ensure ChromaDB API ports are not directly internet-reachable; place behind an authenticated reverse proxy or API gateway with request logging. 4. Patch: Monitor the ChromaDB GitHub repository and the HiddenLayer advisory (https://www.hiddenlayer.com/sai-security-advisory/2026-06-chromadb-5) for a fixed release; upgrade immediately upon availability. 5. Detection: Alert on any UPDATE_COLLECTION API calls that include model repository fields or the trust_remote_code parameter; enable full request-body logging for the collection update endpoint and ship to SIEM.
What systems are affected by CVE-2026-45833?
This vulnerability affects the following AI/ML architecture patterns: RAG pipelines, vector databases, AI/ML platforms, agent frameworks, LLM application stacks.
What is the CVSS score for CVE-2026-45833?
CVE-2026-45833 has a CVSS v3.1 base score of 8.8 (HIGH). The EPSS exploitation probability is 0.34%.
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0010.001AI SoftwareAML.T0010.003ModelAML.T0011.000Unsafe AI ArtifactsAML.T0012Valid AccountsAML.T0049Exploit Public-Facing ApplicationAML.T0050Command and Scripting InterpreterCompliance Controls Affected
What are the technical details?
Original Advisory
A code injection vulnerability in version 0.4.17 or later of the ChromaDB Python project allows an authenticated attacker to run arbitrary code on the server by sending a malicious model repository and trust_remote_code set to true in the /api/v2/tenants/default_tenant/databases/default_database/collections/{collection_id} if they have the UPDATE_COLLECTION permission.
Exploitation Scenario
An attacker with a legitimate ChromaDB account—obtained via credential stuffing against a developer's reused password or through a compromised CI/CD service account—prepares a malicious Python model repository on a public platform such as Hugging Face Hub or a self-controlled server. The repository embeds a reverse shell payload inside a custom from_pretrained loading hook. The attacker issues a PATCH request to /api/v2/tenants/default_tenant/databases/default_database/collections/{collection_id} with a JSON body specifying the malicious repository URL and trust_remote_code=true. ChromaDB fetches and executes the repository code server-side, establishing a reverse shell to the attacker's C2 infrastructure. From that foothold, the attacker exfiltrates all vector embeddings, document chunks, and environment credentials—then optionally inserts poisoned vectors to degrade or manipulate RAG outputs for the targeted organization.
Weaknesses (CWE)
CWE-94Improper Control of Generation of Code ('Code Injection')PrimaryCWE-94Improper Control of Generation of CodeCWE-94Improper Control of Generation of CodeCWE-94 — Improper Control of Generation of Code ('Code Injection'): The product constructs all or part of a code segment using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the syntax or behavior of the intended code segment.
- [Architecture and Design] Refactor your program so that you do not have to dynamically generate code.
- [Architecture and Design] Run your code in a "jail" or similar sandbox environment that enforces strict boundaries between the process and the operating system. This may effectively restrict which code can be executed by your product. Examples include the Unix chroot jail and AppArmor. In general, managed code may provide some protection. This may not be a feasible solution, and it only limits the impact to the operating system; the rest of your application may still be subject to compromise. Be careful to avoid CWE-243 and other weaknesses related to jails.
Source: MITRE CWE corpus.
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HReferences
Timeline
Related Vulnerabilities
CVE-2026-4582910.0ChromaDB: pre-auth RCE via trust_remote_code injection
Same package: chromadbCVE-2026-458328.8ChromaDB: V1 auth bypass exposes all tenant collections
Same package: chromadbCVE-2026-458318.8ChromaDB: RBAC bypass enables cross-tenant data access
Same package: chromadbCVE-2026-458308.8ChromaDB: auth bypass exposes any tenant's collections
Same package: chromadbCVE-2026-8828ChromaDB: tenant isolation bypass exposes all tenant data
Same package: chromadb