CVE: CVE-2026-43631
Продукт: Ubuntu
Дата публикации: 07.08.2026
Критичность: CRITICAL
CVSS: 9.2 (4.0)
EPSS: 0,42%; процентиль 34,84%
CISA KEV: нет подтверждения в каталоге CISA KEV
Краткое описание
В пакете llama.cpp для Ubuntu 26.04 LTS зафиксирована уязвимость use-after-free в llama-server. При активном параметре --sleep-idle-seconds удаленный атакующий может выполнить произвольный код. Материал описывает механику гонки состояний, условия эксплуатации и команды для аудита системы.
Основные характеристики
Классификация: CWE-362 (Race Condition) и CWE-416 (Use After Free). Оценки: CVSS v4.0 — 9.2 (CRITICAL), CVSS v3.1 — 9.8. EPSS: 0.00421 (процентиль 0.35%). В каталоге CISA KEV запись отсутствует. Ubuntu присваивает уровень риска medium, что отражает специфику распространения пакета в дистрибутиве.
Какие продукты и версии затронуты
Затронут пакет llama.cpp версии 8681+dfsg-1 в Ubuntu 26.04 LTS (resolute). В список входят бинарные компоненты: libllama0, llama.cpp, llama.cpp-examples, llama.cpp-tests, llama.cpp-tools, llama.cpp-tools-extra и python3-gguf. Уязвимость присутствует в сборках llama.cpp от b7492 до b9060, если в конфигурации llama-server включен параметр --sleep-idle-seconds.
Причина уязвимости
Ошибка возникает из-за нарушения порядка освобождения и использования памяти (use-after-free) в указателе vocab внутри llama-server. При переходе сервера в спящий режим указатель освобождается, но параллельные рабочие потоки продолжают на него ссылаться. Формируется гонка состояний, при которой атакующий может перехватить выделенную память и подменить данные, на которые ссылается указатель.
Как работает атака
Атакующий направляет запросы к уязвимым эндпоинтам в момент, когда сервер инициирует переход в спящий режим. Происходит освобождение указателя vocab. Поскольку другие потоки не синхронизированы с этим событием, они обращаются к уже освобожденной памяти. Атакующий контролирует содержимое этой памяти, что приводит к выполнению произвольного кода. Успех атаки зависит от точного совпадения временных интервалов (AC:H).
Условия успешной эксплуатации
Необходимо, чтобы llama-server был запущен с флагом --sleep-idle-seconds. Атакующему требуется сетевой доступ к серверу. Учетные данные не нужны (PR:N). Пользовательское взаимодействие не требуется (UI:N). Критическим условием является возможность синхронизировать запросы с моментом перехода сервера в спящий режим.
Возможный сценарий атаки
Администратор развернул llama-server для инференса LLM-моделей, включив автоматический переход в сон для экономии ресурсов. Злоумышленник начинает отправлять запросы к API. В момент, когда сервер решает перейти в спящий режим, атакующий направляет специально сформированный запрос. Рабочие потоки обращаются к освобожденному указателю, атакующий подменяет данные, и сервер выполняет вредоносный код под правами процесса llama-server.
Есть ли публичный эксплойт
В источниках указан репозиторий с патчами (Vladimir-tokarev-cyera/llama-cpp-security-patches), что свидетельствует о наличии технического описания и, вероятно, PoC. Подтвержденная массовая эксплуатация в реальных атаках в предоставленных данных не зафиксирована. Отсутствие записи в CISA KEV не означает, что эксплойт не существует, но подтверждает, что он не попал в каталог известных уязвимостей.
Признаки эксплуатации
Специфичных IOC для CVE-2026-43631 в источниках не приведено. Общие неспецифичные точки контроля: аномальные процессы, запущенные от имени пользователя, под которым работает llama-server; неожиданные исходящие соединения; изменения в файловой системе в директориях, доступных процессу. Эти признаки требуют дополнительной верификации в контексте конкретной инфраструктуры.
Как обнаружить атаку
Анализируйте логи llama-server на предмет аномальных завершений или ошибок памяти (segfaults) в моменты перехода в спящий режим. Мониторьте сетевые соединения процесса llama-server на предмет исходящих запросов к неизвестным адресам. Проверяйте целостность бинарных файлов llama-server и связанных библиотек. Используйте инструменты мониторинга системных вызовов (eBPF) для отслеживания подозрительной активности в процессах, связанных с llama.cpp.
Как проверить свою версию
Для проверки версии пакета llama.cpp в Ubuntu используйте:
Bash:
apt-cache policy llama.cpp
Также полезно проверить версию ОС и ядра:
Bash:
cat /etc/os-release
uname -r
Для проверки статуса безопасности системы:
Bash:
ubuntu-security-status
Обратите внимание: если пакет называется иначе, замените <имя-пакета> в команде apt-cache policy на фактическое имя.
Исправление
Основной способ устранения — обновление пакета llama.cpp до версии, содержащей исправление. В Ubuntu 26.04 LTS следите за обновлениями через стандартные механизмы:
Bash:
sudo apt update
sudo apt upgrade llama.cpp
Если обновление еще не доступно в репозиториях, рассмотрите установку патчей из официального репозитория разработчиков или отключение функции --sleep-idle-seconds до выхода исправления. После обновления перезапустите сервис llama-server.
Временные меры защиты
До применения патча отключите параметр --sleep-idle-seconds в конфигурации llama-server. Это устранит условие, необходимое для проявления уязвимости (переход в спящий режим). Ограничьте сетевой доступ к llama-server, разрешив соединения только из доверенных сетей. Используйте firewall для блокировки входящих запросов от неизвестных IP-адресов. Запустите llama-server под пользователем с минимальными привилегиями.
Как проверить устранение уязвимости
После обновления проверьте версию пакета:
Bash:
apt-cache policy llama.cpp
Убедитесь, что версия отличается от 8681+dfsg-1. Проверьте, что параметр --sleep-idle-seconds не указан в конфигурации, если вы решили отключить его временно. Перезапустите сервис и убедитесь, что он работает корректно. Проверьте логи на предмет ошибок после перезапуска.
Вывод
CVE-2026-43631 представляет серьезную угрозу для систем, использующих llama-server с функцией автоматического перехода в спящий режим. Несмотря на низкий EPSS, критический CVSS-скор и возможность удаленного выполнения кода требуют оперативных действий. Администраторам Ubuntu 26.04 LTS следует проверить наличие пакета llama.cpp, отключить уязвимую функцию или обновить пакет до исправленной версии. Мониторинг логов и сетевой активности поможет выявить возможные попытки эксплуатации.
Официальные источники
История обновлений статьи
- 11.08.2026 — Опубликована первая версия материала.
- 25.08.2026 — Уточнены сведения об уязвимых версиях, оценке риска или исправлении.
Последнее редактирование:
