CVE-2026-43627
WysokieCVSS 7.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 10 - wyżej niż 10% wszystkich znanych CVE
Streszczenie
Podatność przepełnienia liczby całkowitej w funkcji llama_batch_init() w llama.cpp (wersje b1283 do b9058). Niesprawdzone mnożenia w wywołaniach malloc() mogą zawinąć się powyżej INT32_MAX podczas obliczania rozmiarów alokacji.
Ocena ryzyka
Atakujący może przekazać specjalnie spreparowane parametry, powodując uszkodzenie sterty i potencjalnie uzyskać wykonanie dowolnego kodu przez operacje wsadowe zapisujące poza granice bufora.
Rekomendacja
Zaktualizuj llama.cpp do wersji nowszej niż b9058. Nie udostępniaj niezaufanym użytkownikom możliwości przekazywania parametrów do funkcji wsadowych.
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-119052Wysokie
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.
- 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ł.
Oryginalny opis (angielski, źródło NVD)
llama.cpp builds b1283 through b9058 contain an integer overflow vulnerability in the llama_batch_init() function where unchecked multiplications in malloc() calls can wrap past INT32_MAX when computing allocation sizes. Attackers can pass specially crafted parameters to trigger integer overflow, causing heap corruption and potentially achieving arbitrary code execution through subsequent batch operations that write past allocated buffer boundaries.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

