Cybersecurity-onderzoekers hebben een beveiligingslek beschreven dat inmiddels is gepatcht en dat gevolgen heeft voor het Ollama open-source kunstmatige intelligentie (AI)-infrastructuurplatform dat kan worden uitgebuit om code-uitvoering op afstand te bewerkstelligen.
Bijgehouden als CVE-2024-37032, heeft het beveiligingslek de codenaam Probllama gekregen van cloudbeveiligingsbedrijf Wiz. Na verantwoorde openbaarmaking op 5 mei 2024 werd het probleem verholpen in versie 0.1.34, uitgebracht op 7 mei 2024.
Ollama is een service voor het lokaal verpakken, implementeren en uitvoeren van grote taalmodellen (LLM’s) op Windows-, Linux- en macOS-apparaten.
In de kern heeft het probleem te maken met een geval van onvoldoende invoervalidatie, wat resulteert in een padtraversal-fout die een aanvaller kan misbruiken om willekeurige bestanden op de server te overschrijven, wat uiteindelijk kan leiden tot uitvoering van externe code.
De tekortkoming vereist dat de bedreigingsacteur speciaal vervaardigde HTTP-verzoeken naar de Ollama API-server verzendt voor succesvolle exploitatie.
Het maakt specifiek gebruik van het API-eindpunt “/api/pull” – dat wordt gebruikt om een model te downloaden uit het officiële register of uit een privéopslagplaats – om een kwaadaardig modelmanifestbestand te leveren dat een payload voor padtraversal in het digest-veld bevat.
Dit probleem kan niet alleen worden misbruikt om willekeurige bestanden op het systeem te corrumperen, maar ook om code-uitvoering op afstand te verkrijgen door een configuratiebestand (“etc/ld.so.preload”) te overschrijven dat is gekoppeld aan de dynamische linker (“ld.so”) om een frauduleuze gedeelde bibliotheek op te nemen en deze elke keer te starten voordat een programma wordt uitgevoerd.
Hoewel het risico op uitvoering van externe code in grote mate wordt verminderd bij standaard Linux-installaties vanwege het feit dat de API-server aan localhost bindt, is dit niet het geval bij docker-implementaties, waarbij de API-server publiekelijk zichtbaar is.
“Dit probleem is extreem ernstig bij Docker-installaties, omdat de server met ‘root’-privileges draait en standaard naar ‘0.0.0.0’ luistert, wat misbruik op afstand van dit beveiligingslek mogelijk maakt”, aldus beveiligingsonderzoeker Sagi Tzadik.
Wat de zaken verder verergert is het inherente gebrek aan authenticatie dat geassocieerd wordt met Ollama, waardoor een aanvaller een publiek toegankelijke server kan misbruiken om AI-modellen te stelen of ermee te knoeien, en zelf-gehoste AI-inferentieservers in gevaar kan brengen.
Dit vereist ook dat dergelijke diensten worden beveiligd met behulp van middleware, zoals reverse proxy’s met authenticatie. Wiz zei dat het meer dan 1.000 aan Ollama blootgestelde instanties heeft geïdentificeerd die talloze AI-modellen hosten zonder enige bescherming.
“CVE-2024-37032 is een eenvoudig te exploiteren code-uitvoering op afstand die de moderne AI-infrastructuur beïnvloedt”, aldus Tzadik. “Ondanks dat de codebase relatief nieuw is en geschreven is in moderne programmeertalen, blijven klassieke kwetsbaarheden zoals Path Traversal een probleem.”
De ontwikkeling komt op het moment dat AI-beveiligingsbedrijf Protect AI waarschuwde voor meer dan 60 beveiligingsfouten die verschillende open-source AI/ML-tools aantasten, waaronder kritieke problemen die zouden kunnen leiden tot het vrijgeven van informatie, toegang tot beperkte bronnen, escalatie van bevoegdheden en volledige systeemovername.
De ernstigste van deze kwetsbaarheden is CVE-2024-22476 (CVSS-score 10,0), een SQL-injectiefout in Intel Neural Compressor-software waarmee aanvallers willekeurige bestanden van het hostsysteem kunnen downloaden. Het probleem is verholpen in versie 2.5.0.