Критична уязвимост в LMCache — софтуер с отворен код, който ускорява сървърите за големи езикови модели (LLM) като vLLM — позволява на атакуващ да изпълнява код на сървъра за кеширане без необходимост от влизане в системата, като към момента липсва коригирана версия.
Недостатъкът е в многопроцесния режим на LMCache, при който кешът работи като самостоятелен сървър, до който работните процеси за LLM имат достъп чрез библиотеката за съобщения ZeroMQ. Единично мрежово съобщение към този сървър може да изпълни команди с правата на потребителя, от чието име работи процесът на LMCache.
Сървърът е достъпен от друга машина само когато администраторът го е настроил да слуша на маршрутизируем адрес, вместо на localhost, който се използва по подразбиране.
JFrog разкри уязвимостта на 7 октомври и ѝ даде оценка за сериозност 9.8 от 10 (в критичния диапазон) — това е оценката за сървър, свързан към маршрутизируем адрес.
Уязвимостта, проследявана като CVE-2026-105192, засяга LMCache от версия 0.3.9, пусната през октомври 2025 г., до 0.5.5 (най-новата стабилна версия), и присъства също в кандидат-версиите 0.5.6 и в клона за разработка. Все още няма издадена корекция за сигурност.
Дали даден сървър е изложен на риск, зависи от една-единствена настройка. По подразбиране многопроцесният сървър слуша само на локалната машина, така че друг хост не може да достигне до него. Той става достъпен, когато администратор го стартира с маршрутизируем адрес, подобно на това как при внедрявания с множество възли се споделя кеш между различни машини.
Собственото примерно внедряване на LMCache в Kubernetes стартира сървъра по този начин — със слушане на всички мрежови интерфейси. Копие на LMCache, работещо вътре в един-единствен процес на vLLM, изобщо не отваря порта.
Сокетът на ZeroMQ, който многопроцесният сървър отваря, за да могат работните процеси да се регистрират и да споделят кеширани данни, няма автентикация. Един от типовете съобщения се разопакова с pickle — формат на Python, който може да носи код и да го изпълнява при декодирането на данните. Сървърът го разопакова още докато чете аргументите на съобщението, преди каквато и да е проверка на типа му, така че специално форматирано съобщение може да изпълни кода на изпращача.
Кодът се изпълнява с привилегиите на процеса на LMCache. В официалните контейнерни изображения на проекта този процес работи като root, според JFrog. Недостатъкът е открит от Ювал Моравчик от екипа за изследвания в областта на сигурността на JFrog.
Към момента няма официална корекция за сигурност. Докато не бъде издадено обновяване, JFrog съветва администраторите да не задават маршрутизируем адрес на многопроцесния сървър и да държат порта му на локалната машина или в доверена мрежа на клъстера. Защитната стена (firewall), която ограничава достъпа до порта, намалява риска, но не го премахва, тъй като всеки хост, който може да отвори връзка, може да изпълни код.
LMCache все още не е публикувал бюлетин за сигурност относно уязвимостта. Бюлетинът на JFrog не предоставя на операторите метод за определяне дали даден сървър вече е бил атакуван.
Други доклади и свързана корекция във vLLM
Отделно, потребител в GitHub отвори шест допълнителни доклада за сигурността на LMCache на 6 октомври — деня преди оповестяването на CVE-2026-105192. В тях се твърди за неавтентикиран достъп до кеширани данни на различни потребители, както и за няколко мрежови услуги, които изпълняват команди без влизане в системата.
Докладите произхождат от един профил, базират се на концептуални доказателства (Proof-of-Concept) и нямат CVE номер, потвърждение от поддържащите проекта или налична корекция. Един от докладите посочва настройка по подразбиране на LMCache, която междувременно е променена: административен HTTP сървър, който е слушал на всички мрежови интерфейси във версия 0.5.5, вече слуша само на локалния хост в кандидат-версиите 0.5.6.
Свързана уязвимост във vLLM вече е отстранена. Преди версия 0.30.0, пусната на 22 септември, единична заявка с невалидна стойност cache_salt можеше да срине системата при внедрявания, използващи многопроцесния конектор на LMCache — грешка, водеща до отказ на услуга (DoS), проследявана като CVE-2026-105756. Тя е с оценка 6.5 и не позволява изпълнение на код.
Основната грешка — подаването на данни от неавтентикиран мрежов сокет към pickle — е същата, която изследователите откриха в други среди за извличане на знания с изкуствен интелект през ноември 2025 г. в група уязвимости, наречена ShadowMQ. Все още не е установено дали кодът на LMCache споделя общ изходен код с тези проекти.