Podatność typu code injection w projekcie ChromaDB (wersja 1.0.0 i nowsze) pozwala nieuwierzytelnionemu atakującemu na zdalne wykonanie dowolnego kodu na serwerze. Brak wymogu uwierzytelnienia oraz maksymalny wynik CVSS 10.0 czynią tę podatność krytycznym zagrożeniem dla każdej instancji ChromaDB dostępnej z sieci.
▸ Pokaż oryginał (EN)
A pre-authentication, code injection vulnerability in version 1.0.0 or later of the ChromaDB Python project allows an unauthenticated 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/{tenant}/databases/{db}/collections endpoint.
Atakujący wysyła spreparowane żądanie HTTP do punktu końcowego /api/v2/tenants/{tenant}/databases/{db}/collections, podając złośliwe repozytorium modeli wraz z parametrem trust_remote_code ustawionym na true. ChromaDB bez weryfikacji tożsamości wywołującego ładuje i wykonuje kod zawarty w zewnętrznym repozytorium modeli. W efekcie dowolny kod dostarczony przez atakującego jest uruchamiany w kontekście procesu serwera.
Nieuwierzytelniony atakujący uzyskuje możliwość wykonania dowolnego kodu na serwerze (RCE), co może prowadzić do pełnego przejęcia systemu, kradzieży danych, a także dalszego lateral movement w infrastrukturze.
Należy zastosować patche dostępne u producenta zgodnie z referencjami. Do czasu wdrożenia poprawki zaleca się ograniczenie dostępu sieciowego do instancji ChromaDB wyłącznie do zaufanych hostów oraz monitorowanie żądań kierowanych do endpointu /api/v2/tenants/{tenant}/databases/{db}/collections pod kątem obecności parametru trust_remote_code.
ChromaDB Python project w wersji 1.0.0 i nowszych
Szczegóły techniczne podatności zostały opublikowane przez firmę HiddenLayer w artykule badawczym dostępnym pod adresem wskazanym w referencjach (hiddenlayer.com/research/chromatoast-served-pre-auth). Zgłoszenie błędu dostępne jest również w repozytorium GitHub projektu Chroma (issue #6717).
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X