CVE-2026-43631 в Ubuntu: уязвимость use-after-free в llama.cpp с возможностью удаленного выполнения кода

CVE: CVE-2026-43631
Продукт: Ubuntu
Дата публикации: 07.08.2026
Критичность: CRITICAL
CVSS: 9.2 (4.0)
EPSS: 0,41%; процентиль 33,96%
CISA KEV: нет подтверждения в каталоге CISA KEV

Краткое описание​


Уязвимость CVE-2026-43631 в Ubuntu связана с уязвимостью типа use-after-free в компоненте llama.cpp, которая может быть использована для выполнения произвольного кода. В системах Ubuntu, где установлено затронутое программное обеспечение, существует риск несанкционированного удаленного доступа. Обновление рекомендуется как мера безопасности.

Основные характеристики​


Уязвимость CVE-2026-43631 является критической и связана с уязвимостью типа use-after-free в компоненте llama.cpp, используемом в серверной среде. Она затрагивает версии пакета в диапазоне от b7492 до b9060. При активации функции --sleep-idle-seconds сервер может перейти в режим сна, во время которого происходит освобождение указателя vocab, но потоки продолжают использовать его. Это может привести к перезаписи памяти с данными, контролируемыми атакующим, что позволяет выполнить произвольный код. Уязвимость имеет высокую степень серьезности и может быть использована без аутентификации.

Какие продукты и версии затронуты​


В Ubuntu 26.04 LTS затронуты пакеты, основанные на версии llama.cpp, включая libllama0, llama.cpp, llama.cpp-examples, llama.cpp-tests, llama.cpp-tools, llama.cpp-tools-extra и python3-gguf. Все эти пакеты имеют версию 8681+dfsg-1. Уязвимость распространяется на все системы, где установлено программное обеспечение, использующее версии b7492 через b9060. Системы, где установлены более новые версии или отсутствует пакет, не подвержены этой уязвимости.

Причина уязвимости​


Корневая проблема возникает при использовании функции --sleep-idle-seconds в серверной среде llama-server. Во время перехода в спящий режим указатель vocab освобождается, но параллельные потоки продолжают обращаться к нему. Это приводит к уязвимости типа use-after-free, позволяющей перезаписать память с данными, предоставленными атакующим. Такая ситуация возможна, если потоки не завершаются до окончания использования указателя.

Как работает атака​


Атакующий может активировать уязвимость, отправляя запросы к серверу во время перехода в спящий режим. Когда сервер переходит в спящий режим, потоки, обрабатывающие запросы, могут продолжать использовать указатель vocab, который уже был освобожден. Если данные, которые будут записаны в эту память, контролируются атакующим, то он может изменить поведение программы. Это может быть использовано для выполнения произвольного кода на сервере.

Условия успешной эксплуатации​


Для эксплуатации уязвимости требуется, чтобы сервер был сконфигурирован с включенной функцией --sleep-idle-seconds. Также необходим доступ к серверу по сети, так как атака осуществляется через сетевой интерфейс. Атакующий должен иметь возможность отправлять запросы к серверу в момент перехода в спящий режим.

Возможный сценарий атаки​


Атакующий подключается к серверу, который настроен с параметром --sleep-idle-seconds. Во время активности сервера, он получает запросы, которые вызывают переход в спящий режим. В этот момент потоки, обрабатывающие запросы, могут использовать освобожденный указатель vocab. Если данные, записываемые в память, контролируются атакующим, это может привести к выполнению произвольного кода. Сценарий возможен даже при отсутствии аутентификации.

Есть ли публичный эксплойт​


На момент подготовки статьи не было подтверждено наличия публичного эксплойта для CVE-2026-43631. Техническое описание уязвимости указывает на возможность эксплуатации через использование указателя после его освобождения. Отсутствие публичного PoC не исключает потенциальную эксплуатацию, особенно при наличии других уязвимостей или слабых точек в системе.

Признаки эксплуатации​


Поскольку уязвимость связана с конкретной функциональностью и состоянием потоков, возможны следующие признаки: аномальное поведение сервера при переходе в спящий режим, необычные вызовы функций или ошибки в логах, связанные с освобождением памяти. Однако, точные идентификаторы IOC не указаны, и рекомендуется использовать общие методы мониторинга и контроля за системой.

Как обнаружить атаку​


Обнаружение возможно через мониторинг активности сервера, особенно при переходе в спящий режим. Системы, где установлены пакеты с версиями b7492–b9060, могут быть проверены с помощью команды apt-cache policy <имя-пакета>. Также можно использовать специализированные инструменты для анализа поведения потоков и выявления возможных утечек памяти.

Как проверить свою версию​


Для проверки версии пакета в Ubuntu выполните команду: apt-cache policy <имя-пакета> или dpkg -l | grep <имя-пакета>. Например, для проверки пакета llama.cpp: apt-cache policy llama.cpp. Для получения информации о текущей версии ядра: uname -r. Также можно использовать ubuntu-security-status для получения общего обзора состояния безопасности.

Исправление​


Рекомендуется обновить все пакеты, связанные с llama.cpp, до версии, в которой устранена уязвимость. Обновление должно быть выполнено через стандартные механизмы управления пакетами Ubuntu, например, с помощью apt update && apt upgrade. Убедитесь, что все системы, где установлены затронутые пакеты, были обновлены до последней версии.

Временные меры защиты​


Временные меры защиты могут включать отключение функции --sleep-idle-seconds, если она не требуется. Также можно ограничить доступ к серверу через брандмауэр или другие средства контроля доступа. Рекомендуется также вести мониторинг активности сервера и логов для выявления подозрительных действий.

Как проверить устранение уязвимости​


После обновления пакетов проверьте, что версии соответствуют исправленным. Выполните команду apt-cache policy <имя-пакета> и убедитесь, что установленные версии выше, чем b9060. Также можно использовать dpkg -l | grep <имя-пакета> для проверки установленных пакетов. Логи системы должны показывать отсутствие ошибок, связанных с утечкой памяти.

Вывод​


CVE-2026-43631 представляет собой серьезную уязвимость в Ubuntu, связанную с утечкой памяти в компоненте llama.cpp. Она может быть использована для выполнения произвольного кода без аутентификации. Обновление пакетов является обязательным шагом для защиты систем. Рекомендуется применить исправление и отслеживать поведение сервера после обновления.

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


  1. NVD — CVE-2026-43631
  2. Ubuntu OSV — CVE-2026-43631
  3. FIRST EPSS — CVE-2026-43631

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


  • 11.08.2026 — Опубликована первая версия материала.
 
Назад
Верх Низ