Penjelasan teknis
Server Python FastAPI ChromaDB menginisialisasi konfigurasi fungsi embedding — termasuk pemuatan model dari HuggingFace — sebelum melakukan pemeriksaan autentikasi. Penyerang yang tidak terautentikasi mengirimkan satu permintaan POST yang dirancang khusus ke /api/v2/tenants/{tenant}/databases/{db}/collections yang menunjuk ke repositori HuggingFace yang dikendalikan penyerang dengan trust_remote_code: true. Server mengunduh dan menjalankan modul Python berbahaya sebelum pemeriksaan autentikasi berjalan; kode penyerang dijalankan dan server kemudian mengembalikan 403 Forbidden, yang berarti deteksi berbasis log standar hanya akan menampilkan permintaan 'diblokir' sementara payload telah dijalankan. CWE-94 (Code Injection). Skor CVSS 4.0: 10.0.
Vektor serangan
HTTP POST yang tidak terautentikasi ke endpoint collections yang berisi permintaan pembuatan collection dengan nama model HuggingFace yang dikendalikan penyerang dan trust_remote_code: true dalam konfigurasi fungsi embedding. Tidak ada kredensial yang diperlukan. Satu permintaan mencapai eksekusi kode di proses server.
Sistem yang terdampak
Server Python FastAPI ChromaDB, versi 1.0.0 hingga 1.5.8 (saat ini). Sekitar 73% dari penerapan ChromaDB yang dapat diakses internet rentan menurut pemindaian Shodan oleh HiddenLayer. Frontend Rust (chroma run, gambar Docker Hub sejak v1.0.0) TIDAK terpengaruh. ChromaDB memiliki ~13 juta unduhan pip bulanan dan digunakan dalam pipeline RAG 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 Python FastAPI ChromaDB hanya ke klien terpercaya — tanpa paparan internet langsung. Beralih ke jalur penerapan berbasis Rust (chroma run atau gambar Docker Hub) jika operasional memungkinkan. Untuk deteksi, pantau koneksi keluar dari proses ChromaDB ke huggingface.co atau registri model lainnya, pembuatan proses yang tidak terduga dari layanan chromadb, dan pembuatan file baru oleh proses database. Remediasi kode lengkap memerlukan pemindahan autentikasi sebelum pemuatan konfigurasi dan penghapusan kunci 'kwargs' dari permintaan di kedua handler create_collection V1 dan V2.