POST /mcp-rest/test/connectionPOST /mcp-rest/test/tools/listОба эндпоинта принимают в теле JSON-запроса полную конфигурацию MCP-сервера, включая поля Cmd, args, и env, которые транспорт stdio использует для запуска серверных процессов . Когда аутентифицированный пользователь вызывает любой из этих эндпоинтов с такой конфигурацией, LiteLLM берет предоставленное значение Cmd и запускает его как подпроцесс на хост-машине с теми же правами операционной системы, что и сам процесс прокси LiteLLM
.
Изначально BerriAI раскрыла эту проблему как аутентифицированное удаленное выполнение кода — злоумышленнику требовался действительный API-ключ для доступа к эндпоинтам, при этом не было проверки ролей, ограничивающей круг лиц. Даже внутренний пользователь с низкими привилегиями и любым действительным ключом API прокси мог выполнять произвольные команды на хосте . Но на этом история не закончилась.
Вторая уязвимость — CVE-2026-48710, названная исследователями "BadHost". Это ошибка проверки HTTP-заголовка Host в Starlette, легковесном ASGI-фреймворке, который лежит в основе FastAPI, vLLM и тысяч других веб-приложений на Python, включая LiteLLM . Уязвимости подвержены все версии Starlette с 0.8.3 по 1.0.0
.
Первопричина в расхождении парсинга между тем, как Starlette маршрутизирует входящие запросы, и тем, как он восстанавливает URL для логики приложения . Уровень маршрутизации ASGI использует сырой HTTP-путь из запроса для определения целевого эндпоинта. Но свойство
request.url — тот URL, который видят middleware и декораторы приложения — восстанавливается путем конкатенации сырого значения заголовка Host с путем запроса без надлежащей проверки .
Путем внедрения в заголовок Host разделительных символов URI, таких как ? или #, злоумышленник может сделать так, что request.url.path будет выглядеть совершенно иначе, чем фактический маршрутизируемый путь . Промежуточное ПО (middleware) видит безобидный путь вроде
/, в то время как маршрутизатор "за кулисами" направляет запрос на реальный целевой эндпоинт. Любое middleware для аутентификации на основе пути, доверяющее request.url.path, может быть тривиально обойдено .
Декоратор аутентификации LiteLLM проверяет request.url.path, чтобы определить, требуется ли для запроса действительный API-ключ. Обход BadHost позволяет злоумышленнику манипулировать этим URL так, что промежуточное ПО аутентификации видит путь, не требующий проверки, в то время как ASGI-маршрутизатор одновременно отправляет запрос к одному из уязвимых эндпоинтов для инъекции команд .
Это убирает единственный барьер контроля доступа, который стоял между интернетом и выполнением произвольных команд. Злоумышленник без каких-либо учетных данных и предварительного доступа к сети может отправить один специально созданный HTTP-запрос, который полностью обходит аутентификацию и выполняет команды операционной системы на хосте прокси LiteLLM . Horizon3.ai подтвердили, что полная цепочка работает, и присвоили ей комбинированную оценку CVSS 10.0 — максимальный уровень опасности — так как она позволяет достичь неаутентифицированного удаленного выполнения кода
.
Успешная эксплуатация дает злоумышленнику возможность выполнять команды с привилегиями процесса прокси LiteLLM. С этого момента поверхность для атаки стремительно расширяется:
Добавление CISA уязвимости CVE-2026-42271 в каталог KEV 8 июня 2026 года подтверждает, что уязвимость не теоретическая — злоумышленники активно используют ее прямо сейчас . Согласно Оперативной директиве обязательного характера 22-01 (BOD 22-01), все федеральные гражданские органы исполнительной власти США должны устранить уязвимости из каталога KEV в установленные сроки. CISA также настоятельно рекомендует всем организациям, государственным и частным, рассматривать пополнение каталога KEV как приоритет для экстренного исправления
.
Исправление комбинированного эксплойта требует обновлений на двух фронтах, а также нескольких мер глубокоэшелонированной защиты для устранения последствий раскрытия учетных данных:
Host на соответствие спецификации URL и игнорирует заголовки с недопустимыми символами, предотвращая трюк с подменой пути, который лежит в основе обхода аутентификации POST /mcp-rest/test/connectionPOST /mcp-rest/test/tools/listHost Комбинированная оценка опасности CVSS 10.0, активная эксплуатация "в дикой природе" и статус KEV от CISA означают, что организации, использующие LiteLLM или сервисы на базе Starlette, должны рассматривать это как событие, требующее экстренного исправления и смены всех ключей. Окно между активной эксплуатацией и кражей учетных данных уже открыто.
Comments
0 comments