llama.cpp — это результат нескольких моделей LLM на C/C++. До версии b8492 функция deserialize_tensor() серверной части RPC пропускала проверку всех границ, когда поле буфера тензора равно 0. Злоумышленник, не прошедший проверку подлинности, может читать и записывать произвольную память процесса с помощью созданных сообщений GRAPH_COMPUTE.
В сочетании с утечками указателей из ALLOC_BUFFER/BUFFER_GET_BASE это обеспечивает полный обход ASLR и удаленное выполнение кода. Аутентификация не требуется, просто TCP-доступ к порту сервера RPC. Эта проблема исправлена в версии b8492.
Показать оригинальное описание (EN)
llama.cpp is an inference of several LLM models in C/C++. Prior to version b8492, the RPC backend's deserialize_tensor() skips all bounds validation when a tensor's buffer field is 0. An unauthenticated attacker can read and write arbitrary process memory via crafted GRAPH_COMPUTE messages. Combined with pointer leaks from ALLOC_BUFFER/BUFFER_GET_BASE, this gives full ASLR bypass and remote code execution. No authentication required, just TCP access to the RPC server port. This issue has been patched in version b8492.
Характеристики атаки
Последствия
Строка CVSS v3.1