Magas kockázatú sérülékenységet javított a Weaviate Google-moduljaiban

A Weaviate v1.39.3 frissítése magas kockázatú sérülékenységet javít a Google-hátterű modulokban. A hiba miatt egy módosítható végpontbeállítás a Google-hitelesítő adatokat tetszőleges külső szerverre irányíthatta.
- A Weaviate v1.39.3 javítja a Google-modulok magas kockázatú sérülékenységét.
- A hiba Google API-kulcs vagy OAuth-hozzáférési token kiszivárgását tehette lehetővé.
- A sérülékenység a v1.39.3 előtti Weaviate-verziókat érinti.
- A Weaviate Cloud és a piactéri ügyfelek automatikusan megkapták a javítást.
- A CVE-azonosító kiosztása még folyamatban van.
A hibás beállítás hitelesítő adatokat is továbbíthatott
A Weaviate Google-hátterű text2vec-google, multi2vec-google és generative-google moduljai az apiEndpoint konfigurációs értékkel határozzák meg, melyik géphez küldjék a Vertex AI és Gemini kéréseket. A rendszer ezt az értéket ellenőrzés nélkül közvetlenül a kérés URL-jének gépnevébe írta, miközben a beállított Google-hitelesítő adatot bearer tokenként minden célhoz csatolta.
Ez lehetővé tette, hogy aki befolyásolni tudta az apiEndpoint értékét, egy saját maga által választott szerverre irányítsa a Weaviate kérését, és ezzel együtt megszerezze a hitelesítő adatot. A Weaviate közlése szerint a sérülékenység CVSS-értéke 7,1, a hozzá tartozó CVE-azonosító kiosztása pedig még folyamatban van a MITRE-nél.
Két támadási út vezetett a hibához
Az egyik lehetőség a kollekció konfigurációján keresztül nyílt meg. A moduleConfig.text2vec-google.apiEndpoint értéke, illetve a másik két modul megfelelő beállítása kollekció létrehozásakor vagy frissítésekor adható meg. Ezen a rétegen az ellenőrzés csak azt vizsgálta, hogy szerepel-e projektazonosító, magát a végpontot nem ellenőrizte. Ehhez a művelethez sémaírási jogosultság kellett.
A súlyosabb út a generative-google GraphQL-lekérdezésein keresztül működött. A modul lekérdezési paraméterként is elfogadta az apiEndpoint értéket, amely felülírhatta a kollekció alapértelmezett beállítását. Ehhez elegendő volt a normál olvasási jogosultság egy olyan kollekcióhoz, amely már használta a modult. Sémaírási jogosultságra és a tárolt konfiguráció módosítására nem volt szükség.
A kiszivárgó adat a Google-hitelesítés módjától függött. Statikus API-kulcs használatakor ez a kulcs kerülhetett ki. A USE_GOOGLE_AUTH bekapcsolásakor élő OAuth-hozzáférési token szivároghatott ki, amely a cloud-platform hatókörrel a szolgáltatásfiók számára elérhető Google Cloud API-k nagy részéhez hozzáférést biztosíthat.
A v1.39.3 frissítés kiterjeszti a végpontok ellenőrzését
A Weaviate javítása az apiEndpoint mezőre is kiterjeszti a végpontok érvényesítését mindhárom Google-modulban. Az ellenőrzés a konfigurációs rétegen és a GraphQL-lekérdezések paramétereinél is működik. A vállalat szerint a korábbi kiadásokban bevezetett védelem más szolgáltatók baseURL mezőit kezelte, a Google-modulok eltérő nevű apiEndpoint beállítása azonban kimaradt.
A Weaviate a v1.39.3 előtti verziókat érintettnek tekinti, és azt javasolja, hogy az üzemeltetők frissítsenek erre vagy újabb kiadásra. A frissítésig a modulok az enabled_modules beállításból a text2vec-google, multi2vec-google és generative-google elemek eltávolításával tilthatók le.
A felhős ügyfeleket már javították
A Weaviate közlése szerint a Weaviate Cloud, valamint az AWS, Azure és GCP piactéri ügyfelei automatikusan megkapták a javítást. A Weaviate Enterprise Support ügyfelei előzetes értesítést kaptak, a Dedicated ügyfelekkel pedig a megfelelő verziófrissítéseket egyeztetik.
A vállalatnak nincs tudomása arról, hogy a sérülékenységet kihasználták volna. Ahol a Google-modulok használata szükséges, a Weaviate a sémaírási és lekérdezési hozzáférések korlátozását, valamint a Vertex AI-hoz használt szolgáltatásfiók lehető legszűkebb jogosultságú beállítását ajánlja. A hibát Syed Anas Mohiuddin független biztonsági kutató jelentette a Weaviate sérülékenység-bejelentési programján keresztül.
Weaviate: Weaviate security release - High severity fix for credential disclosure in the Google modules

