Konferencja Mega Sekurak Hacking Party w Krakowie – 26-27 października!
Adminie… Czy znamy Twoje grzechy? ;-) Sprawdź!
Konferencja Mega Sekurak Hacking Party w Krakowie – 26-27 października!
Adminie… Czy znamy Twoje grzechy? ;-) Sprawdź!
Badacz bezpieczeństwa Jeremy Brown, znany z odkrywania luk (memory corruption) w ogólnodostępnych narzędziach, po raz kolejny udowodnił, że innowacyjne metody oraz nieszablonowe działania pozwalają wychwycić błędy, które przez lata pozostawały niewidoczne. Korzystając ze wsparcia sztucznej inteligencji udało mu się wykryć poważną podatność w silniku Ollama, skutkującą możliwym wyciekiem danych z pamięci serwera.
TLDR:
Ollama jest popularną platformą open-source służącą do lokalnego uruchamiania dużych modeli językowych (Large Language Models – LLM). Narzędzie zdobyło popularność głównie dzięki prostocie obsługi oraz wsparciu dla kwantyzacji.
Kwantyzacja to technika optymalizacji modelu, polegająca na zmniejszeniu precyzji zapisu jego wag liczbowych (np. z formatu 16-bitowego na format 4-bitowy). Taka modyfikacja pozwala znacząco zredukować zapotrzebowania na pamieć RAM oraz przyspieszyć działanie modelu. Dzięki czemu można uruchomić go lokalnie, nawet na domowym sprzęcie, przy niewielkim spadku jakości odpowiedzi.
To właśnie mechanizm optymalizacji, a konkretnie sposób przetwarzania plików w formacie GGUF (GPT-Generated Unified Format) stał się celem ataku. Podatność typu OOB (out-of-bounds) heap write/read (CVE-2026-5757) pozwala na odczyt danych wykraczających poza zakres zaalokowanego bufora pamięci.
Mówiąc w skrócie: atakujący może zmodyfikować plik GGUF w taki sposób, aby silnik Ollama podczas procesu kwantyzacji odwołał się do danych znajdujących się w stercie aplikacji (wykraczając poza obszar pamięci przypisany do modelu). Odczytane w ten sposób informacje zostają zapisane jako nowa warstwa modelu. Dalszy proces eksfiltracji polega na przesłaniu wykradzionych danych, a dokładniej mówiąc nowo utworzonego modelu bezpośrednio na serwer kontrolowany przez atakującego.
Dalszy proces eksfiltracji polega na przesłaniu na serwer atakującego nowo utworzonego modelu, w którym przejęte informacje zostały zapisane jako jedna z jego warstw
Podatność jest możliwa do wykorzystania na skutek nałożenia się na siebie trzech czynników:
Nieautoryzowany dostęp do pamięci operacyjnej serwera umożliwia eksfiltrację wrażliwych informacji użytkownika, takich jak klucze API czy też dane uwierzytelniające. Co więcej, wykorzystanie podatności może prowadzić do przejęcia kontroli nad serwerem, czy też zapewnienia trwałej obecności w infrastrukturze bez podnoszenia alertów bezpieczeństwa.
Na chwilę obecną oficjalna poprawka bezpieczeństwa nie została wydana. Do momentu pojawienia się aktualizacji zaleca się wyłączenie lub ograniczenie funkcji przesyłania modeli na wystawionych publicznie serwerach.
Jeżeli jednak z przyczyn operacyjnych przesyłanie modeli jest wymagane, należy akceptować dane pochodzące wyłącznie ze sprawdzonych i zaufanych źródeł. Ponadto, każdorazowo należy stosować kontrole walidacyjne oraz monitorować ruch sieciowy pod kątem wkrycia anomalii skutkującej eksfiltracją danych.
Aby atak miał szansę powodzenia, należy posiadać uprawnienia umożliwiające interakcję z API Ollamy w zakresie tworzenia lub przesyłania modeli. Warto zauważyć, że Ollama nie posiada domyślnie mechanizmów uwierzytelnienia i autoryzacji. Oznacza to, że każdy kto ma dostęp do usługi, może być potencjalnym atakującym.
Źródło: kb.cert.org
~_secmike
1. gguf to format używany w ggml/llama.cpp
2. ollama to wrapper na llama.cpp (przynajmniej kiedyś był)
Więc, albo ollama sobie wyvibecodowała sama jakieś zmiany w obsłudze gguf, albo błąd jest w llama.cpp, a nie ollama.
Może ktoś się orientuje. Czy modele zaciągane przez mechanizm “pull” są w jakiś sposób weryfikowane? Czy problem dotyczy tylko modeli z losowych stron www oraz Hugging Face?