CVE-2026-119052
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 49 - wyżej niż 49% wszystkich znanych CVE
Streszczenie
llama.cpp w wersjach od b2877 do przed b11935 zawiera podatność nieobsłużonego wyjątku w serwerze ggml-rpc. Nieuwierzytelniony zdalny atakujący może wysłać zbyt dużą długość wiadomości (np. w poleceniu SET_TENSOR), wywołując std::length_error i przerwanie procesu. Prowadzi to do odmowy usługi dla wszystkich klientów.
Ocena ryzyka
Atakujący bez uwierzytelnienia może zdalnie wyłączyć serwer RPC, blokując dostęp do usługi wszystkim klientom. Ryzyko dotyczy każdej ekspozycji serwera ggml-rpc w sieci.
Rekomendacja
Zaktualizuj llama.cpp do wersji b11935 lub nowszej. Do czasu aktualizacji ogranicz dostęp sieciowy do serwera ggml-rpc wyłącznie do zaufanych hostów.
Inne podatności w llama.cpp
Zobacz wszystkie- CVE-2026-107183Wysokie
llama.cpp przed wersją b11393 zawiera podatność use-after-free i double free w funkcji common_chat_peg_mapper::map, która pozwala nieuwierzytelnionym zdalnym atakującym uszkodzić pamięć sterty przez zwisający wskaźnik current_tool. Atakujący mogą wysłać chat_parser w żądaniu POST /completion emitującym tool-id po tagu tool-close, aby spowodować awarię llama-server i uzyskać prymityw zapisu do sterty.
- CVE-2026-118375Wysokie
llama.cpp w wersjach od b8841 do b11865 zawiera podatność na zapis poza granicami bufora w funkcji rdma_recv() transportu RDMA ggml-rpc, która pozwala nieuwierzytelnionym peером na przepełnienie stosu serwera rpc-server. Atakujący deklarujący obsługę RDMA w wiadomości HELLO mogą wysłać do 256 KiB do zmiennej stosu o rozmiarze 1 bajta w rpc_serve_client(), powodując awarię serwera lub potencjalne wykonanie kodu.
- CVE-2026-116840Średnie
llama.cpp w wersjach od b5854 do b11275 zawiera podatność przepełnienia liczby całkowitej w funkcji gguf_init_from_reader, która omija sprawdzenie rozmiaru z CVE-2025-53630 poprzez dopełnienie rozmiarów tensorów bliskich SIZE_MAX. Atakujący może dostarczyć spreparowany plik GGUF, którego rozmiar tensora dopełnia się do zera, powodując zbyt mały blok danych i odczyty poza granicami przez konsumentów.
- CVE-2026-116829Średnie
llama.cpp w wersjach od b10398 do b11301 zawiera podatność przepełnienia liczby całkowitej w funkcji gguf_init_from_reader, która pozwala obejść walidację liczby elementów tensora poprzez dostarczenie kształtów, których iloczyn zawija się do zera. Atakujący może spreparować pliki GGUF z ogromnymi wymiarami tensorów, które przepełniają ggml_nbytes() i kroki, powodując dostęp do pamięci poza granicami, gdy bufory są rozmiarowane na podstawie zawiniętych liczb bajtów.
- CVE-2026-116816Wysokie
llama.cpp w wersjach od b5899 przed b10261 zawiera podatność zapisu poza granice sterty (heap out-of-bounds write) w funkcji llm_tokenizer_plamo2::build, umożliwiającą atakującym uszkodzenie pamięci sterty za pomocą spreparowanych modeli GGUF. Atakujący może dostarczyć tekst tokenu typu BYTE, taki jak <0x-1>, którego ujemna wartość podczas ładowania modelu zapisuje identyfikatory tokenów przed buforem bytes_, powodując awarie lub potencjalne wykonanie kodu.
- CVE-2025-71439Średnie
llama.cpp przed wersją b5649 zawiera podatność polegającą na odczycie poza granicami sterty w funkcji llama_vocab::impl::print_info(), która pozwala atakującym na wywołanie awarii podczas ładowania modelu poprzez zbyt duże identyfikatory tokenów specjalnych. Atakujący może dostarczyć spreparowany model GGUF z krótką tablicą tokenizer.ggml.tokens, powodując odczyt poza id_to_token i awarię llama-cli lub llama-server.
- CVE-2024-58400Wysokie
llama.cpp w wersjach przed b3701 zawiera podatność odczytu poza granice (out-of-bounds read) w funkcjach llama_decode_internal i llama_encode_internal, umożliwiającą zdalnym nieuwierzytelnionym atakującym odczyt pamięci poprzez dostarczenie niezwalidowanych identyfikatorów tokenów. Atakujący może wysłać tablice liczb całkowitych do punktu końcowego /completion serwera llama-server z identyfikatorami spoza zakresu 0 do n_vocab, aby odczytać pamięć osadzeń poza granicami lub spowodować awarię procesu.
- CVE-2024-58399Średnie
llama.cpp przed wersją b2731 zawiera podatność polegającą na odczycie poza granicami w funkcji llama_model_loader, która pozwala atakującym na odczyt pamięci poza zmapowanym plikiem modelu poprzez spreparowane przesunięcia tensorów GGUF. Atakujący może dostarczyć spreparowany lub obcięty plik modelu GGUF z dowolnymi 64-bitowymi przesunięciami tensorów, powodując awarię procesu lub załadowanie sąsiedniej pamięci procesu jako wag modelu.
- CVE-2026-116467Średnie
W ggml-org llama.cpp do wersji 0.7.0 wykryto lukę w nieznanej funkcjonalności pliku src/llama-sampler.cpp komponentu Mirostat Sampler. Manipulacja prowadzi do osiągalnego asercji (reachable assertion), a atak można przeprowadzić zdalnie. Projekt został poinformowany o problemie przez pull request, ale jeszcze nie zareagował.
- CVE-2026-116096Średnie
W ggml-org llama.cpp funkcja list_pockettts_state_slots w pliku tools/mtmd/models/pockettts-gen.cpp (komponent Pocket-TTS) pozwala na out-of-bounds write poprzez manipulację argumentem mmproj. Atak wymaga lokalnego dostępu, a exploit jest publicznie dostępny. Aktualizacja do wersji b11796 rozwiązuje problem.
Oryginalny opis (angielski, źródło NVD)
llama.cpp b2877 before b11935 contains an uncaught exception vulnerability in the ggml-rpc server that allows unauthenticated remote attackers to crash the rpc-server by sending oversized message lengths. After the HELLO handshake, attackers can send a command such as SET_TENSOR with a length above std::vector::max_size(), triggering an uncaught std::length_error that aborts the process and denies service to all clients.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

