CVE: CVE-2026-43632
Продукт: Ubuntu
Дата публикации: 07.08.2026
Критичность: CRITICAL
CVSS: 9.2 (4.0)
EPSS: 0,33%; процентиль 25,50%
CISA KEV: нет подтверждения в каталоге CISA KEV
Краткое описание
Уязвимость CVE-2026-43632 в Ubuntu связана с ошибкой типа use-after-free в компоненте llama.cpp, которая может привести к сбою или потенциальному выполнению кода. Системы, использующие затронутые пакеты, требуют проверки и обновления для обеспечения безопасности.
Основные характеристики
CVE-2026-43632 описывает уязвимость в компоненте llama.cpp, затрагивающую шесть эндпоинтов: /tokenize, /detokenize, /infill, /apply-template, /rerank и /anthropic/count_tokens. Эндпоинты работают напрямую с ctx_server.vocab, минуя очередь задач. В результате race condition между основным потоком и HTTP worker threads может происходить использование освобожденной памяти. Уязвимость особенно актуальна при активном параметре --sleep-idle-seconds. Описание уязвимости основано на данных из источников и не включает эксплуатационные сценарии.
Какие продукты и версии затронуты
В Ubuntu 26.04 LTS (resolute) уязвимость затрагивает пакеты, основанные на версии llama.cpp 8681+dfsg-1. Включённые бинарные компоненты: libllama0, llama.cpp, llama.cpp-examples, llama.cpp-tests, llama.cpp-tools, llama.cpp-tools-extra и python3-gguf. Все указанные пакеты используют одинаковый исходный код, содержащий уязвимость. Системы с этими пакетами требуют проверки и обновления.
Причина уязвимости
Корневая причина уязвимости связана с некорректной синхронизацией между основным потоком и HTTP worker threads. После завершения работы основного потока с объектом ctx_server.vocab и его освобождения, поток обработки запросов может продолжать его использование. Это создаёт состояние гонки (race condition), позволяющее атакующему использовать освобожденную память. Уязвимость классифицируется как CWE-367 (Time-of-Check Time-of-Use) и CWE-416 (Use After Free).
Как работает атака
Механизм атаки основан на вызове одного из шести эндпоинтов, которые напрямую обращаются к контексту словаря (vocab) без синхронизации. При активном параметре --sleep-idle-seconds система может находиться в состоянии ожидания, позволяя обработчику продолжать работу с уже освобожденной памятью. Это может привести к повреждению стека или перезаписи указателей. Конкретные последствия зависят от реализации синхронизации и управления памятью в системе.
Условия успешной эксплуатации
Для эксплуатации уязвимости требуется, чтобы сервер llama.cpp был сконфигурирован с параметром --sleep-idle-seconds и был доступен по сети. Атакующий должен иметь возможность отправлять запросы к уязвимым эндпоинтам. Отсутствие специфичных условий не исключает потенциальную эксплуатацию. Данные условия не подтверждены в источниках и не описаны как обязательные для атаки.
Возможный сценарий атаки
Предполагаемый сценарий: сервер llama.cpp с параметром --sleep-idle-seconds принимает запрос к уязвимому эндпоинту. В момент освобождения памяти основным потоком, но до завершения работы обработчика, происходит использование освобожденной области. Это может привести к сбою или повреждению памяти. Сценарий не подтверждён и не описан как гарантированная эксплуатация.
Есть ли публичный эксплойт
На момент проверки не было подтверждено наличие публичного эксплойта или PoC, демонстрирующего эксплуатацию уязвимости. Отсутствие публичного PoC не исключает возможности её эксплуатации в реальных условиях. Информация о наличии или отсутствии эксплойтов не содержится в источниках.
Признаки эксплуатации
В отсутствие специфичных индикаторов компрометации, возможные сигналы включают аномальное поведение сервера, необычные вызовы эндпоинтов или нестандартное использование CPU. События, связанные с параметром --sleep-idle-seconds, могут быть сигналом для дополнительного анализа. Информация о конкретных индикаторах не предоставлена в источниках.
Как обнаружить атаку
Обнаружение возможно через анализ логов сервера llama.cpp на предмет необычного поведения, таких как частые вызовы уязвимых эндпоинтов или сбои. Проверка версии установленных пакетов также может указать на наличие уязвимости. Анализ сетевого трафика и событий API может помочь выявить подозрительную активность. Данные методы не подтверждены как уникальные для обнаружения.
Как проверить свою версию
Для проверки версии пакета llama.cpp в Ubuntu 26.04 LTS можно использовать следующие команды:
Код:
cat /etc/os-release
uname -r
apt-cache policy <имя-пакета>
ubuntu-security-status
Замените
<имя-пакета> на один из следующих: libllama0, llama.cpp, llama.cpp-examples, llama.cpp-tests, llama.cpp-tools, llama.cpp-tools-extra, python3-gguf. Если версия пакета ниже 8681+dfsg-1, система подвержена уязвимости.Исправление
Основной способ защиты — обновление пакетов, содержащих llama.cpp, до версии, в которой устранена уязвимость. Администраторы должны проверить доступность обновлений через систему управления пакетами. Если обновление невозможно, рекомендуется ограничить доступ к API сервера и отключить параметр --sleep-idle-seconds, если он не требуется. Также важно ограничить доступ к уязвимым эндпоинтам, если это возможно.
Временные меры защиты
В отсутствие обновления можно применить временную защиту, ограничив доступ к эндпоинтам /tokenize, /detokenize, /infill, /apply-template, /rerank и /anthropic/count_tokens. Также рекомендуется отключить параметр --sleep-idle-seconds, если он не используется. Настройка брандмауэра или прокси для фильтрации запросов к уязвимым эндпоинтам может снизить риск. Эти меры не устраняют уязвимость, но могут ограничить её эксплуатацию.
Как проверить устранение уязвимости
После установки обновлений необходимо проверить, что версия пакета соответствует исправленной. Например, выполните команду:
Код:
apt-cache policy <имя-пакета>
Если версия пакета выше 8681+dfsg-1, уязвимость устранена. Рекомендуется перезапустить сервис llama.cpp и проверить его работу. Тестирование на предмет отсутствия сбоев или аномального поведения может подтвердить корректность обновления.
Вывод
CVE-2026-43632 представляет собой уязвимость в компоненте llama.cpp, которая может быть использована для сбоя или повреждения памяти. Администраторы Ubuntu 26.04 LTS должны обновлять пакеты для устранения уязвимости. В случае невозможности обновления, необходимо применять временные меры защиты, такие как ограничение доступа к API и отключение параметров, усиливающих риск. Регулярный мониторинг и анализ логов помогут выявить возможные попытки эксплуатации.
Официальные источники
История обновлений статьи
- 11.08.2026 — Опубликована первая версия материала.
