CVE-2026-43630
ŚrednieCVSS 6.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 37 - wyżej niż 37% wszystkich znanych CVE
Streszczenie
llama.cpp w wersjach od b5702 do b7653 zawiera podatność na odczyt poza zakresem w ścieżce przywracania stanu pamięci rekurencyjnej, co pozwala atakującym z dostępem do zapisu w katalogu zapisu slotów na odczyt pamięci poza końcem tablicy komórek. Atakujący może stworzyć złośliwy plik slotu z nadmierną wartością seq_id, aby wywołać odczyt poza zakresem, który ujawnia dane sterty, w tym wartości wskaźników, do logów serwera, omijając ochronę ASLR i ułatwiając dalszą eksploatację.
Ocena ryzyka
Ujawnienie danych sterty, w tym wskaźników, może umożliwić atakującemu obejście ASLR i przeprowadzenie dalszych ataków, takich jak wykonanie kodu.
Rekomendacja
Zaktualizuj llama.cpp do wersji nowszej niż b7653, aby naprawić podatność na odczyt poza zakresem.
Inne podatności w llama.cpp
Zobacz wszystkie- CVE-2026-78148Średnie
W ggml-org llama.cpp bec4772f6 znaleziono podatność w funkcji rpc_server::graph_compute pliku ggml/src/ggml-rpc/ggml-rpc.cpp komponentu ggml-RPC Server. Wykonanie manipulacji prowadzi do wyłuskania pustego wskaźnika (null pointer dereference). Atak może być przeprowadzony zdalnie. Pull request z poprawką oczekuje na akceptację.
- CVE-2026-78147Wysokie
Podatność w llama.cpp w funkcji deserialize_tensor pliku ggml/src/ggml-rpc/ggml-rpc.cpp komponentu ggml-RPC Server. Manipulacja argumentami op/op_params prowadzi do deserializacji. Atak może być przeprowadzony zdalnie. Podatność różni się od CVE-2026-34159, która tylko dodaje odrzucenie buffer==nullptr w create_node() i nie waliduje op ani op_params. Zgłoszone zgłoszenie GitHub zostało automatycznie zamknięte z powodu braku aktywności.
- CVE-2026-39909Wysokie
llama.cpp przed wersją b8585 zawiera podatność use-after-free w serwerze RPC w handlerze GRAPH_RECOMPUTE, która pozwala nieuwierzytelnionym zdalnym atakującym na uzyskanie dowolnego odczytu i zapisu, a także zdalne wykonanie kodu.
- CVE-2026-70640Wysokie
llama.cpp w wersjach b1886 do b7445 zawiera podatność typu use-after-free związaną z wyścigiem w wrapperze JNI LLaMA-Android, gdzie funkcje bench_1model() i free_1context() nie są zsynchronizowane, co pozwala wątkowi A operować na zwolnionej pamięci, podczas gdy wątek B jednocześnie zwalnia llama_context. Atakujący może wykorzystać to przez heap spray z kontrolowanymi danymi zawierającymi fałszywą vtable, aby przejąć wskaźnik vtable i uzyskać zdalne wykonanie kodu.
- CVE-2026-70639Średnie
W llama.cpp w wersjach b1886 do b7445 występuje podatność na dereferencję pustego wskaźnika w wrapperze JNI LLaMA-Android, gdzie funkcja bench_1model() nie sprawdza wskaźnika kontekstu modelu przed jego użyciem. Atakujący może dostarczyć złośliwy, uszkodzony lub skrócony plik modelu, aby wywołać warunek pustego kontekstu, powodując awarię SIGSEGV i zakończenie procesu aplikacji Android.
- CVE-2026-70638Wysokie
llama.cpp w wersjach b1886 do b7445 zawiera podatność przepełnienia liczby całkowitej w wrapperze JNI LLaMA-Android, gdzie funkcja new_1batch() mnoży sizeof(llama_seq_id) przez kontrolowany przez atakującego parametr n_seq_max bez walidacji przepełnienia, co powoduje zawinięcie alokacji bufora i przydzielenie niewystarczającej pamięci. Atakujący może wykorzystać to przez podanie spreparowanej wartości n_seq_max w złośliwym pliku modelu lub wywołaniu JNI, aby wywołać uszkodzenie sterty i uzyskać odmowę usługi lub wykonanie kodu.
- CVE-2026-43632Wysokie
llama.cpp w wersjach od b7492 do najnowszej b9060 zawiera podatność use-after-free w llama-server, wpływającą na sześć endpointów tokenizacji (/tokenize, /detokenize, /infill, /apply-template, /rerank i /anthropic/count_tokens), które omijają kolejkę zadań i uzyskują bezpośredni dostęp do `ctx_server.vocab` w wątkach roboczych HTTP. Atakujący mogą wykorzystać wyścig typu time-of-check-time-of-use, gdzie główny wątek niszczy i zwalnia vocab po zwolnieniu blokady synchronizacji, ale zanim handler zakończy jego użycie, powodując awarię lub potencjalne wykonanie kodu, gdy skonfigurowano `--sleep-idle-seconds`.
- CVE-2026-43631Wysokie
llama.cpp w wersjach od b7492 do najnowszej b9060 zawiera podatność use-after-free w wskaźniku vocab w llama-server, gdy włączona jest funkcja `--sleep-idle-seconds`, co pozwala nieuwierzytelnionym zdalnym atakującym na wykonanie dowolnego kodu. Atakujący mogą wywołać podatność, wysyłając żądania do dotkniętych endpointów podczas przechodzenia serwera w tryb uśpienia, powodując, że współbieżne wątki robocze odwołują się do zwolnionego wskaźnika vocab, który może zostać odzyskany przez dane kontrolowane przez atakującego, aby osiągnąć zdalne wykonanie kodu.
- CVE-2026-43629Wysokie
Podatność przepełnienia bufora sterty w llama.cpp (wersje b4882 do b9058) w ścieżce przywracania stanu pamięci podręcznej KV. Funkcja state_read_data() oblicza rozmiar zapisu bez kontroli przepełnienia, co pozwala atakującemu z dostępem do katalogu slot_save_path na uszkodzenie pamięci sterty.
- CVE-2026-43628Wysokie
Podatność niedomiaru liczby całkowitej i odczytu poza zakresem w samplerze DRY w llama.cpp (wersje b3978 do b9058). Nieuwierzytelniony atakujący może wysłać spreparowane żądanie HTTP z parametrem dry_allowed_length ustawionym na INT32_MIN do endpointów /v1/completions lub /v1/chat/completions, powodując niedomiar bufora sterty.
Oryginalny opis (angielski, źródło NVD)
llama.cpp builds b5702 through b7653 contain an out-of-bounds read vulnerability in the recurrent memory state restore path that allows attackers with write access to the slot save directory to read memory past the end of the allocated cells array. Attackers can craft a malicious slot file with an oversized seq_id value to trigger an out-of-bounds read that leaks heap data including pointer values into server logs, defeating ASLR protections and facilitating further exploitation.

