CVE-2026-43629 в Debian: переполнение буфера в куче при восстановлении состояния KV кэша

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 должны своевременно обновлять пакеты и следить за статусом уязвимости в официальных источниках. В случае необходимости, следует применять временные меры защиты до выхода исправления.

Официальные источники​


  1. NVD — CVE-2026-43629
  2. Debian Security Tracker — CVE-2026-43629
  3. FIRST EPSS — CVE-2026-43629

История обновлений статьи​


  • 10.08.2026 — Опубликована первая версия материала.
  • 12.08.2026 — Уточнены сведения об уязвимых версиях, оценке риска или исправлении.
 
Последнее редактирование:
Назад
Верх Низ