Öppna Chroma-databaser: En ny angreppsyta för AI-appar


Chroma är en öppen källkodsvektorlager - en databas som är utformad för att låta LLM-chattbotar söka efter relevant information när de besvarar en användares fråga - och en av många teknologier som har sett en ökning av antagandet med den senaste AI-boomen. Precis som många databaser kan Chroma konfigureras av slutanvändare för att sakna autentisering och auktoriseringsmekanismer. När databaser utan autentisering exponeras för internet kan anonyma användare läsa och till och med uppdatera datan i databasen, vilket potentiellt kan äventyra konfidentialiteten, tillgängligheten och integriteten av datan.

Även om Chroma-databaser som är tillgängliga på internet är mycket mindre vanliga än äldre typer av databaser, växer deras antal och de kan potentiellt vara en källa till betydande dataläckor i en snar framtid. Vid en undersökning av 1170 Chroma-databaser som var tillgängliga på internet upptäckte vi 406, eller ungefär en tredjedel, som exponerade någon form av data. Den mest anmärkningsvärda av dessa läckte viss personlig identifierbar information (PII) från Canva Creators, vilket vi har skrivit om här.

Vad är Chroma-databasen?

Säg att du sätter upp en chattbot för din hotells eller restaurants webbplats. Du skulle använda en LLM för att fylla i uppmaningen, men du skulle också behöva ett datalager som är unikt för ditt företag för saker som öppettider, bekvämligheter, din adress och annan information som är nödvändig för en webbplatsbesökare.

Inom Chroma tar denna typ av information formen av "dokument" som vanligtvis är enkla strängar som innehåller relevant information för chatboten. En av strängarna kan vara något som "Våra öppettider är från 9 på morgonen till 10 på kvällen, 7 dagar i veckan." När någon sedan frågar din chatbot vad era öppettider är, skulle ChromaDB hitta det dokumentet eftersom det mest nära matchar frågan, och sedan köra det tillbaka genom LLM för att göra svaret mer konverserande. Slutanvändaren kan få något som "Vi har öppet varje dag från 9 på morgonen till 10 på kvällen och ser fram emot ditt besök!"

Distribution av Chroma-databaser utan autentisering

När vi undersökte internet i april 2025 fanns det 1170 Chroma-databaser som var tillgängliga över internet. För att avgöra om några data var exponerade använde vi metoden .list_collections för varje IP-adress och sedan .get_collection för att hämta data från varje samling. I det här fallet returnerade 406 databaser någon form av data och cirka två tredjedelar returnerade ett autentiseringsfel eller innehöll inga data.

Cirka en tredjedel av internetexponerade Chroma-databaser tillåter anonym åtkomst.

Varje databas kan ha flera "samlingar", som är logiskt separerade, ja, samlingar av dokument. Antalet samlingar per databas ger en heuristik för huruvida de används aktivt och i vilken utsträckning. Den mest utnyttjade databasen hade 4 315 samlingar, vilket verkligen utgör tung användning av något slag. Många av de databaser som konfigurerats för att tillåta anonym åtkomst hade ingen meningsfull data, men 60 % av databaserna hade mer än en samling, vilket indikerar någon modifiering bortom standard-samlingen, och 32 % hade fem eller fler samlingar.

Fördelning av samlingar per databas, som visar en halvnormalt fördelning med upp till 4 000 samlingar i en databas.

Geografisk distribution av Chroma-databaser

Geolokaliseringen av IP-adresser som hostar internet-exponerade Chroma-databaser ger oss en viss uppfattning om vilka regioner som är mest i riskzonen för konsekvenserna av felkonfigurationer. Medan vissa AI-teknologier visar en överdriven användning i Kina, används Chroma mest i USA och Europa, med en anmärkningsvärd närvaro i Indien också. För att bättre representera den långsvans av europeiska nationer utöver de 20 vanligaste länderna har vi inkluderat ett aggregatantal för EU som helhet.

Distribution av Chroma-databaser efter geolokalisering av IP-adress som visar flest i USA och EU-länder.

Risker kopplade till oautentiserad Chroma-databas

Dataintrång

Av de 406 öppna Chroma-instanser vi undersökte, fann vi att de flesta användes för grundläggande utforskning och inte innehöll mycket unik data. Men precis som med all nätverksbaserad teknologi, fann vi också Chroma-servrar som verkade innehålla verklig data som driver chatbot LLM:er någonstans på Internet.

Ett vanligt användningsområde för ChromaDB verkar vara att tillhandahålla data relaterad till lägenhets- och hotelluthyrningar i och runt Indien. Ett antal servrar innehöll information om fastigheter och deras bekvämligheter, vilket är saker som en besökare på en webbplats troligen skulle fråga om. Detta användningsområde är meningsfullt för Chroma och läcker inte känslig data, men databaserna bör ha någon säkerhet som förhindrar angripare från att få direkt åtkomst till datan.

En annan server verkade tillhöra en e-handels SEO-tjänst. Databasägaren hade fyllt den med kundsupport chattloggar, uppenbarligen som ett sätt att öka kunskapen hos LLM chatboten. Genom att lägga till någons tidigare konversation om vanliga frågor skulle boten nu ha den tidigare erfarenheten att utgå ifrån när den svarade på framtida frågor. Detta väcker självklart oro för att om någon känslig kunddata hade lagts till Chroma, så skulle den kunna ses av framtida användare av chatboten. Faktum är att vi har sett just detta fall - att försöka förbättra en supportbot genom att mata den med verkliga användartickets - resultera i ett läckage av PII för LlamaIndex, en annan AI-teknologi.

Skrivbarhet

Från Chromas dokumentation om säkerhet, är autentisering inaktiverad som standard. "Som standard kräver Chroma ingen autentisering. Du måste aktivera det manuellt. Om du distribuerar Chroma i en offentligt synlig miljö, är det mycket rekommenderat att aktivera autentisering."

Att helt enkelt få tillgång till de tillgängliga uppgifterna är bara en aspekt. En annan är att en illvillig användare kan ändra eller förstöra de uppgifter som är tillgängliga för en chatbot. Det är lätt att föreställa sig ett antal situationer där en produktionschatbot med en icke-autentiserad och öppen ChromaDB-instans skulle kunna ge felaktig eller till och med farlig information till en chatbot-användare.

För att illustrera hur en angripare med obegränsad åtkomst till en Chroma-databas kan missbruka den, har vi skapat en demonstration där vi laddar upp vilseledande dokument, tar bort korrekta dokument och ersätter dokument med sådana som leder användare till resurser som kontrolleras av angriparen.

Slutsats

Som vi lärde oss när vi använde Chromas demoanteckning, är det verkligen en cool teknik för att hämta dokument att använda i AI-drivna appar. Med över tusen internetåtkomliga instanser verkar det också ha en hälsosam adoption och tillväxt. Men användare måste vara medvetna om hur man konfigurerar sina databaser på ett säkert sätt, särskilt med tanke på att den saknar autentisering som standard. (Som en parentes gjorde Elasticsearch en gång samma beslut - att utelämna autentisering på grund av principen att ansvaret tillhör webbapplikationslagret snarare än databasen - och ändrade senare detta på grund av frekvensen av dataläckor från Elasticsearch.) Förutom att säkerställa att vissa mekanismer förhindrar anonyma användare från att få tillgång till databasen, bör användare även överväga att sanera data som innehåller personligt identifierbar information (PII) eller annan konfidentiell information för att minimera påverkan vid en läcka eller intrång.