Penjelasan teknis
Server ChromaDB Python FastAPI menginisialisasi konfigurasi embedding function — termasuk model loading dari HuggingFace — sebelum melakukan authentication checks. Penyerang yang belum terotentikasi mengirim satu POST request yang dirancang ke /api/v2/tenants/{tenant}/databases/{db}/collections menunjuk ke repository HuggingFace yang dikontrol penyerang dengan trust_remote_code: true. Server mengunduh dan mengeksekusi modul Python yang berbahaya sebelum authentication check berjalan; kode penyerang dieksekusi dan server kemudian mengembalikan 403 Forbidden, berarti deteksi berbasis log standar hanya akan menunjukkan request yang 'diblokir' sementara payload telah dijalankan. CWE-94 (Code Injection). CVSS 4.0 score: 10.0.
Vektor serangan
Unauthenticated HTTP POST ke collections endpoint berisi collection creation request dengan nama HuggingFace model yang dikontrol penyerang dan trust_remote_code: true dalam konfigurasi embedding function. Tidak ada kredensial yang diperlukan. Single request mencapai code execution pada server process.
Sistem yang terdampak
ChromaDB Python FastAPI server, versi 1.0.0 hingga 1.5.8 (terkini). Sekitar 73% dari ChromaDB deployments yang dapat diakses internet rentan menurut Shodan scan oleh HiddenLayer. Rust frontend (chroma run, Docker Hub images sejak v1.0.0) TIDAK terpengaruh. ChromaDB memiliki ~13 juta monthly pip downloads dan digunakan dalam RAG pipelines oleh Mintlify, Factory AI, dan Weights & Biases.
Mitigasi
Tidak ada patch yang tersedia per ChromaDB 1.5.8/1.5.9. Segera batasi akses jaringan ke port server ChromaDB Python FastAPI hanya ke trusted clients — tanpa eksposur langsung ke internet. Beralih ke deployment path berbasis Rust (chroma run atau Docker Hub images) jika secara operasional memungkinkan. Untuk deteksi, monitor koneksi outbound dari ChromaDB process ke huggingface.co atau model registries lainnya, unexpected process spawning dari chromadb service accounts, dan pembuatan file baru oleh database process. Full code remediation memerlukan pemindahan authentication sebelum configuration loading dan penghapusan 'kwargs' keys dari requests di kedua create_collection handlers V1 dan V2.