CVE: CVE-2026-43629
Продукт: Debian
Дата публикации: 07.08.2026
Критичность: CRITICAL
CVSS: 9.2 (4.0)
EPSS: 0,62%; процентиль 46,42%
CISA KEV: нет подтверждения в каталоге CISA KEV
Краткое описание
Уязвимость CVE-2026-43629 в Debian затрагивает компонент llama.cpp, реализующий функционал восстановления состояния KV кэша. В результате переполнения буфера в куче возможна корrupция метаданных или данных модели. Администраторы должны быть осведомлены о наличии уязвимости в системах, где используется данный компонент.
Основные характеристики
CVE-2026-43629 — критическая уязвимость в проекте llama.cpp, затрагивающая сборки b4882–b9058. Она связана с механизмом восстановления состояния кэша KV, где функция state_read_data() не проверяет переполнение при вычислении размера записи. Это позволяет атакующим с правами записи в директорию slot_save_path создавать специально оформленные файлы состояния, которые могут вызвать выход за границы буфера и повредить данные в куче. Возможна перезапись указателей функций, что может привести к выполнению произвольного кода.
Какие продукты и версии затронуты
Уязвимость затрагивает пакет llama.cpp, распространяемый через репозитории Debian. Конкретные версии, уязвимые к CVE-2026-43629, находятся в диапазоне b4882–b9058. В настоящее время статус уязвимости в релизах Debian Forky и Sid не определён. Пакеты в этих репозиториях уже имеют более новые версии, которые могут содержать исправление. Администраторы Debian должны следить за обновлениями в официальных источниках и применять патчи при их появлении.
Причина уязвимости
Корневая проблема связана с отсутствием проверки переполнения при вычислении размера записи в функции state_read_data(). При чтении данных состояния кэша происходит попытка записать данные в буфер, размер которого не проверяется на соответствие размеру данных. Это может привести к переполнению буфера в куче, если количество ячеек (cell_count) умножается на размер элемента и результат превышает доступный буфер. Такие условия позволяют атакующим контролировать данные, записываемые за пределы буфера.
Как работает атака
Атакующий, имеющий доступ к записи в директорию slot_save_path, может подготовить файл состояния с некорректными данными. В процессе восстановления состояния, функция state_read_data() выполняет операцию, связанную с размером буфера, и при отсутствии проверки на переполнение, данные могут быть записаны за пределы буфера. Это может привести к повреждению метаданных кучи, перезаписи указателей функций или других данных, что открывает возможность для выполнения произвольного кода.
Условия успешной эксплуатации
Для эксплуатации уязвимости требуется, чтобы атакующий имел возможность записи в директорию slot_save_path. Это может быть достигнуто, например, при использовании приложения, которое сохраняет состояние модели в этой директории. Также необходимо, чтобы система выполняла восстановление состояния из файла, предоставленного атакующим. В системах, где пользователь не имеет доступа к этой директории, эксплуатация невозможна.
Возможный сценарий атаки
Сценарий атаки предполагает, что в системе, работающей с llama.cpp, существует процесс, который сохраняет состояние модели в директорию slot_save_path. Атакующий может подготовить файл состояния с заранее рассчитанными параметрами, которые приведут к переполнению буфера при восстановлении. Если система выполняет восстановление этого файла, то данные могут быть записаны за пределы буфера, что может привести к повреждению кучи или перезаписи указателей функций. В случае успеха, атакующий может получить возможность выполнения произвольного кода.
Есть ли публичный эксплойт
На момент подготовки статьи не подтверждено наличие публичного эксплойта или PoC для CVE-2026-43629. Отсутствие подтверждённых сведений о технической эксплуатации не исключает возможности её наличия в будущем. Администраторы должны быть готовы к возможной эксплуатации уязвимости в случае, если она станет известна.
Признаки эксплуатации
В отсутствие подтверждённых PoC, атакующие могут использовать неспецифичные признаки поведения, такие как необычные записи в директории slot_save_path, неожиданные изменения в файлах состояния, или аномалии в работе приложений, использующих llama.cpp. Системные журналы и мониторинг активности в этой директории могут помочь выявить подозрительные действия.
Как обнаружить атаку
Обнаружение уязвимости возможно через проверку версии пакета llama.cpp в системе. Администраторы могут использовать команды apt или dpkg для получения информации о версии установленного пакета. Также можно использовать журналы событий и мониторинг активности в директории slot_save_path. При наличии подозрительных действий, таких как неожиданные файлы или изменения в состоянии, следует провести анализ поведения приложений.
Как проверить свою версию
Для проверки версии пакета llama.cpp в системе Debian используются следующие команды:
Код:
cat /etc/debian_version
cat /etc/os-release
apt-cache policy <имя-пакета>
dpkg-query -W -f='${Package} ${Version}\n' <имя-пакета>
Замените
<имя-пакета> на имя пакета, например llama.cpp или libllama. Это позволит определить, установлена ли версия, уязвимая к CVE-2026-43629.Исправление
Администраторы должны обновить пакет llama.cpp до версии, содержащей исправление уязвимости. В настоящее время в репозиториях Debian Forky и Sid уже доступны версии, которые могут содержать патч. Рекомендуется выполнить обновление через систему управления пакетами apt. После обновления следует перезапустить сервисы, использующие llama.cpp, чтобы применить изменения.
Временные меры защиты
В отсутствие исправления, администраторы могут ограничить права доступа к директории slot_save_path, чтобы предотвратить запись файлов состояния от сторонних пользователей. Также рекомендуется отключить или ограничить использование функции восстановления состояния, если она не требуется для работы системы.
Как проверить устранение уязвимости
После применения обновления, администраторы должны проверить, что версия пакета llama.cpp больше или равна версии, содержащей исправление. Для этого можно использовать команды:
Код:
apt-cache policy <имя-пакета>
dpkg-query -W -f='${Package} ${Version}\n' <имя-пакета>
Также рекомендуется перезапустить сервисы, использующие llama.cpp, чтобы убедиться, что изменения применяются корректно.
Вывод
CVE-2026-43629 представляет собой серьёзную уязвимость в компоненте llama.cpp, которая может быть использована для повреждения данных или выполнения произвольного кода. Администраторы Debian должны своевременно обновлять пакеты и следить за статусом уязвимости в официальных источниках. В случае необходимости, следует применять временные меры защиты до выхода исправления.
Официальные источники
История обновлений статьи
- 10.08.2026 — Опубликована первая версия материала.
- 12.08.2026 — Уточнены сведения об уязвимых версиях, оценке риска или исправлении.
Последнее редактирование:
