Уязвимость LMCache позволяет выполнить код без аутентификации

В открытом ПО LMCache, ускоряющем серверы больших языковых моделей, включая vLLM, выявлена критическая уязвимость CVE-2026-105192. JFrog оценила её в 9,8 балла из 10: при доступности многопроцессного сервера по сети злоумышленник может выполнить код без аутентификации. Исправленной версии на момент раскрытия не выпущено.
Проблема затрагивает LMCache начиная с версии 0.3.9, выпущенной в октябре 2025 года, до актуальной стабильной 0.5.5. Она также присутствует в релиз-кандидатах 0.5.6 и ветке разработки. Уязвимость обнаружил исследователь команды JFrog Юваль Моравчик.
Когда сервер становится доступен извне
Риск связан с многопроцессным режимом LMCache. В этой конфигурации кэш работает как отдельный сервер, а рабочие процессы LLM подключаются к нему через библиотеку сообщений ZeroMQ. По умолчанию сервис слушает только localhost, поэтому с другого хоста подключиться нельзя.
Экспозиция появляется, когда оператор указывает маршрутизируемый адрес для совместного доступа к кэшу между машинами, например в многоузловом развёртывании. Пример Kubernetes-конфигурации в документации LMCache запускает сервер на всех сетевых интерфейсах. Вариант LMCache внутри одного процесса vLLM порт не открывает.
Почему возможна удалённая команда
ZeroMQ-сокет, через который процессы регистрируются и обмениваются кэшированными данными, не требует аутентификации. Один из типов сообщений LMCache распаковывает с помощью Python pickle — формата, способного выполнить код при десериализации.
По данным JFrog, распаковка происходит ещё во время чтения аргументов сообщения, до проверки его типа. Поэтому специально сформированное сетевое сообщение может запустить код отправителя с правами процесса LMCache. В официальных контейнерных образах проект запускает этот процесс от root.
Что проверить операторам
JFrog рекомендует до выхода исправления не назначать многопроцессному серверу маршрутизируемый адрес и оставлять порт на локальной машине либо в доверенной сети кластера. Межсетевой экран, ограничивающий круг подключающихся хостов, уменьшает поверхность атаки, но не устраняет проблему: любой узел, сохранивший доступ к порту, способен выполнить код.
LMCache не публиковал отдельного бюллетеня безопасности, а рекомендации JFrog не дают способа установить, был ли сервер уже скомпрометирован. Отдельно в vLLM до версии 0.30.0 существовала связанная ошибка CVE-2026-105756: некорректный параметр cache_salt мог вызвать отказ в обслуживании при использовании коннектора LMCache multiprocess, но выполнение кода она не позволяла.
Для бизнеса практический шаг — инвентаризировать экземпляры LMCache, проверить адреса привязки и сетевые правила, а также исключить ненужную доступность сервисов между сегментами. Пока патча нет, безопасная конфигурация порта и минимизация доступа остаются основными мерами защиты.

