llama.cpp — это результат нескольких моделей LLM на C/C++. До версии b7824 уязвимость целочисленного переполнения в функции ggml_nbytes позволяла злоумышленнику обойти проверку памяти, создав файл GGUF с определенными размерами тензора. Это приводит к тому, что ggml_nbytes возвращает значительно меньший размер, чем требуется (например, 4 МБ вместо эксабайтов), что приводит к переполнению буфера в куче, когда приложение впоследствии обрабатывает тензор.
Эта уязвимость делает возможным удаленное выполнение кода (RCE) из-за повреждения памяти. b7824 содержит исправление.
Показать оригинальное описание (EN)
llama.cpp is an inference of several LLM models in C/C++. Prior to b7824, an integer overflow vulnerability in the `ggml_nbytes` function allows an attacker to bypass memory validation by crafting a GGUF file with specific tensor dimensions. This causes `ggml_nbytes` to return a significantly smaller size than required (e.g., 4MB instead of Exabytes), leading to a heap-based buffer overflow when the application subsequently processes the tensor. This vulnerability allows potential Remote Code Execution (RCE) via memory corruption. b7824 contains a fix.
Характеристики атаки
Последствия
Строка CVSS v3.1