CVE: CVE-2026-43629
Продукт: Debian
Дата публикации: 07.08.2026
Критичность: CRITICAL
CVSS: 9.2 (4.0)
EPSS: 0,62%; процентиль 47,21%
CISA KEV: нет подтверждения в каталоге CISA KEV
Краткое описание
В пакете
llama.cpp для Debian обнаружена критическая уязвимость, позволяющая нарушителю с локальным доступом к каталогу сохранения состояния KV-кэша повредить память и выполнить произвольный код. Статья разбирает механику ошибки, статус исправлений в дистрибутиве и практические шаги для администраторов.Основные характеристики
Уязвимость позволяет атакующему, имеющему права на запись в каталог сохранения состояния модели, повредить кучу и потенциально выполнить произвольный код. Риск высокий, так как атака не требует прав root, но требует локального доступа к файловой системе.
- Тип ошибки: Heap Buffer Overflow (CWE-787) и Integer Overflow (CWE-190).
- CVSS 4.0: 9.2 (CRITICAL). Вектор:
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X.
- Условия атаки: Требуется локальный доступ к каталогу
slot_save_pathи возможность подмены файлов состояния.
- Эксплуатация: Публичные данные о массовой эксплуатации отсутствуют, но техническое описание атаки доступно.
- EPSS: 0,62% (процентиль 47,21%).
Какие продукты и версии затронуты
Уязвимость затрагивает пакет
llama.cpp в дистрибутивах Debian. Согласно данным Debian Security Tracker, статус исправления для всех перечисленных релизов на данный момент является «undetermined» (не определено), а срочность не назначена.- Debian forky: Версия в репозитории
1:0.2.0+dfsg1-1. Статус: undetermined.
- Debian sid: Версия в репозитории
1:0.2.0+dfsg1-1. Статус: undetermined.
Администраторам следует проверить, установлен ли пакет
llama.cpp на их системах, так как именно он содержит уязвимый код.Причина уязвимости
Причина уязвимости кроется в функции
state_read_data(), которая используется для восстановления состояния KV-кэша. При вычислении размера данных для записи в память функция не выполняет проверку на переполнение целочисленного значения.Атакующий может создать вредоносный файл состояния, в котором поле
cell_count содержит значение, вызывающее переполнение при умножении или превышающее выделенный размер буфера тензора. В результате функция записывает данные за пределы выделенной области памяти, что приводит к повреждению метаданных кучи, весов модели или указателей на функции.Как работает атака
Атака реализуется через подмену файлов состояния KV-кэша. Атакующий, имеющий права на запись в каталог
slot_save_path, размещает там специально сформированный файл. При попытке приложения восстановить состояние из этого файла функция state_read_data() читает вредоносные метаданные.Из-за отсутствия проверки на переполнение при вычислении размера записи, данные записываются за границы выделенного буфера. Это позволяет нарушителю повредить структуру памяти, что может привести к выполнению произвольного кода через перезапись указателей на функции или повреждению критических данных процесса.
Условия успешной эксплуатации
Для успешной эксплуатации уязвимости атакующему необходимо выполнить следующие условия:
- Наличие установленного пакета
llama.cppв уязвимой версии (b4882–b9058).
- Локальный доступ к файловой системе с правами на запись в каталог
slot_save_path.
- Возможность подмены или создания файлов состояния KV-кэша в этом каталоге.
- Запуск приложения, которое попытается восстановить состояние из подмененного файла.
Возможный сценарий атаки
Сценарий атаки начинается с того, что нарушитель получает локальный доступ к системе, где запущен сервис, использующий
llama.cpp. Он определяет каталог slot_save_path и проверяет свои права на запись в него.Затем атакующий формирует вредоносный файл состояния, в котором параметры
cell_count рассчитаны так, чтобы вызвать переполнение при вычислении размера буфера. Файл помещается в каталог. Когда приложение пытается загрузить состояние, происходит запись за пределы буфера, что приводит к выполнению кода атакующего или сбою процесса.Есть ли публичный эксплойт
На данный момент в источниках нет подтверждений о массовой эксплуатации уязвимости в реальных атаках. Однако доступно техническое описание механизма атаки и репозиторий с патчами, что указывает на наличие PoC или детального анализа. Отсутствие сведений о KEV не означает, что эксплойт не существует, но подтвержденной эксплуатации в дикой природе зафиксировано не было.
Признаки эксплуатации
Специфичных индикаторов компрометации (IOC) для этой уязвимости в открытых источниках не опубликовано. Администраторам следует полагаться на общие признаки аномального поведения:
- Непредвиденные сбои или аварийные завершения процесса
llama.cpp.
- Изменение времени модификации файлов в каталоге
slot_save_path.
- Появление неизвестных процессов, запущенных от имени пользователя, работающего с приложением.
- Аномальные записи в логах доступа к файловой системе в каталоге сохранения состояния.
Как обнаружить атаку
Для обнаружения потенциальной атаки рекомендуется настроить мониторинг каталога
slot_save_path на предмет создания или изменения файлов. Также полезно отслеживать логи приложений на предмет ошибок, связанных с восстановлением состояния KV-кэша.Следует проверять права доступа к каталогу
slot_save_path и убедиться, что только доверенные пользователи имеют права на запись. Использование инструментов мониторинга файловой системы (например, auditd) поможет зафиксировать подозрительные операции с файлами состояния.Как проверить свою версию
Для проверки версии установленного пакета
llama.cpp в Debian используйте следующие команды. Замените <имя-пакета> на фактическое имя пакета, если оно отличается от llama.cpp.
Bash:
cat /etc/debian_version
cat /etc/os-release
apt-cache policy llama.cpp
dpkg-query -W -f='${Package} ${Version}\n' llama.cpp
Сравните полученную версию с данными из Debian Security Tracker, чтобы определить, является ли она уязвимой.
Исправление
Основным способом устранения уязвимости является обновление пакета
llama.cpp до исправленной версии. Однако, согласно Debian Security Tracker, на момент публикации статьи исправленная версия для релизов forky и sid еще не назначена (статус undetermined).Администраторам рекомендуется:
- Следить за обновлениями в Debian Security Tracker.
- При появлении исправленной версии немедленно установить ее через
apt update && apt upgrade llama.cpp.
- До выхода официального патча рассмотреть временные меры защиты, описанные ниже.
Временные меры защиты
Пока официальное исправление не выпущено, можно применить следующие временные меры:
- Ограничить права на запись в каталог
slot_save_pathтолько для доверенных пользователей.
- Отключить функцию восстановления состояния KV-кэша, если это возможно в конфигурации приложения.
- Изолировать процесс
llama.cppв контейнере или песочнице с ограниченным доступом к файловой системе.
- Регулярно проверять целостность файлов в каталоге
slot_save_path.
Как проверить устранение уязвимости
После установки обновления необходимо проверить, что уязвимость устранена. Убедитесь, что версия пакета соответствует исправленной, указанной в Debian Security Tracker.
Проведите функциональное тестирование приложения, чтобы убедиться, что восстановление состояния KV-кэша работает корректно. Проверьте логи на предмет ошибок, связанных с обработкой файлов состояния. Если возможно, проведите сканирование уязвимостей для подтверждения отсутствия CVE-2026-43629.
Вывод
CVE-2026-43629 представляет серьезную угрозу для систем, использующих
llama.cpp в Debian, особенно в средах, где несколько пользователей имеют доступ к каталогу сохранения состояния. Администраторам следует внимательно отнестись к управлению правами доступа и следить за выходом официального исправления. Временные меры защиты помогут снизить риск до момента обновления пакета.Официальные источники
История обновлений статьи
- 10.08.2026 — Опубликована первая версия материала.
- 12.08.2026 — Уточнены сведения об уязвимых версиях, оценке риска или исправлении.
- 23.08.2026 — Уточнены сведения об уязвимых версиях, оценке риска или исправлении.
- 27.08.2026 — Уточнены сведения об уязвимых версиях, оценке риска или исправлении.
- 31.08.2026 — Уточнены сведения об уязвимых версиях, оценке риска или исправлении.
Последнее редактирование:
