Biblioteka llama.cpp zawiera krytyczną podatność w strukturze rpc_tensor, w której niebezpieczny wskaźnik data umożliwia zapis pod dowolny adres pamięci. Luka uzyskała maksymalny wynik CVSS 10.0, co oznacza pełne zagrożenie poufności, integralności i dostępności systemu bez żadnych wymagań wstępnych.
▸ Pokaż oryginał (EN)
llama.cpp provides LLM inference in C/C++. The unsafe `data` pointer member in the `rpc_tensor` structure can cause arbitrary address writing. This vulnerability is fixed in b3561.
Struktura rpc_tensor używana w warstwie RPC biblioteki llama.cpp zawiera pole data będące wskaźnikiem, który nie jest odpowiednio weryfikowany (CWE-787: out-of-bounds write, CWE-123: write-what-where condition). Atakujący może dostarczyć spreparowane dane, które spowodują, że wskaźnik data wskaże na dowolny adres w przestrzeni adresowej procesu. W rezultacie możliwe jest nadpisanie dowolnego obszaru pamięci kontrolowaną przez napastnika wartością, co klasycznie prowadzi do przejęcia kontroli nad przepływem wykonania programu.
Atakujący zdalny, nieuwierzytelniony może osiągnąć zdalne wykonanie kodu (RCE) z uprawnieniami procesu obsługującego wnioski RPC, co może prowadzić do pełnego przejęcia kontroli nad systemem, wycieku danych oraz naruszenia integralności i dostępności usługi.
Należy zaktualizować llama.cpp do wersji b3561 lub nowszej, w której podatność została naprawiona. Patch dostępny jest w repozytorium GitHub projektu pod wskazanym commitem. Do czasu aktualizacji zaleca się ograniczenie dostępu sieciowego do interfejsu RPC biblioteki wyłącznie do zaufanych hostów przy użyciu firewalla.
llama.cpp (produkt Ggml) w wersjach wcześniejszych niż b3561 (commit b72942fac998672a79a1ae3c03b340f7e629980b)
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:HGgml Llama.cpp
APPGgml< b3561
Powiązane podatności
RCE w llama.cpp — brak walidacji granic w RPC backend (deserialization)
llama.cpp is an inference of several LLM models in C/C++. Prior to b7824, an integer overflow vulnerability in...
llama.cpp is an inference of several LLM models in C/C++. Prior to b8146, the gguf_init_from_file_impl() in gg...
llama.cpp is an inference of several LLM models in C/C++. In commits 55d4206c8 and prior, the n_discard parame...
llama.cpp is an inference of several LLM models in C/C++. Prior to version b5721, there is a signed vs. unsign...