Сборки llama.cpp с b4882 по b9058 содержат уязвимость переполнения буфера кучи в пути восстановления состояния кэша KV, где функция state_read_data() вычисляет размер записи без проверки переполнения, что позволяет злоумышленникам с доступом на запись в каталог slot_save_path повредить память кучи. Злоумышленники могут создавать вредоносные файлы состояния, в которых умножение cell_count переполняет или превышает выделение тензорного буфера для записи контролируемых злоумышленником байтов за границы буфера, что потенциально может привести к повреждению метаданных кучи, повреждению веса модели или выполнению произвольного кода через перезапись указателя функции.
Показать оригинальное описание (EN)
llama.cpp builds b4882 through b9058 contain a heap buffer overflow vulnerability in the KV cache state restore path where the state_read_data() function computes write size without overflow checking, allowing attackers with write access to the slot_save_path directory to corrupt heap memory. Attackers can craft malicious state files where cell_count multiplication overflows or exceeds tensor buffer allocation to write attacker-controlled bytes past buffer boundaries, potentially resulting in heap metadata corruption, model weight corruption, or arbitrary code execution via function pointer overwrite.
Характеристики атаки
Последствия
Строка CVSS v4.0