POST /mcp-rest/test/connectionPOST /mcp-rest/test/tools/listОбидві кінцеві точки приймають повну конфігурацію MCP-сервера в тілі JSON-запиту, включаючи поля Cmd, args та env, які транспорт stdio використовує для запуску серверних процесів . Коли автентифікований користувач звертається до будь-якої з цих точок із такою конфігурацією, LiteLLM бере отримане значення Cmd та запускає його як дочірній процес на хост-машині, виконуючи його з тими ж привілеями операційної системи, що й сам процес проксі-сервера LiteLLM
.
Спочатку BerriAI розкрила це як вразливість автентифікованого віддаленого виконання коду — зловмиснику потрібен був дійсний API-ключ для доступу до кінцевих точок, і не було жодної рольової перевірки, яка б обмежувала, хто може їх викликати. Навіть непривілейований внутрішній користувач із будь-яким дійсним API-ключем проксі міг виконувати довільні команди на хості . Але на цьому історія не закінчилася.
Друга вразливість — CVE-2026-48710, яку дослідники назвали "BadHost". Це помилка валідації заголовка хоста у фреймворку Starlette — легковаговому ASGI-фреймворку, що лежить в основі FastAPI, vLLM та тисяч інших Python-вебзастосунків, включно з LiteLLM . Уразливими є всі версії Starlette з 0.8.3 по 1.0.0
.
Першопричина полягає в розбіжності парсингу між тим, як Starlette маршрутизує вхідні запити, і тим, як він відновлює URL для логіки застосунку . Рівень ASGI-маршрутизації використовує необроблений HTTP-шлях із запиту, щоб вирішити, яка кінцева точка його обробляє. Але
request.url — URL, який бачать middleware застосунку та декоратори — відновлюється шляхом конкатенації необробленого значення заголовка Host зі шляхом запиту, без належної валідації .
Вставляючи такі символи-роздільники, як ? або #, у заголовок Host, зловмисник може зробити так, що request.url.path виглядатиме зовсім інакше, ніж фактичний маршрутизований шлях . Middleware бачить нешкідливий шлях на кшталт
/, тоді як маршрутизатор за лаштунками спрямовує запит до справжньої цільової кінцевої точки. Будь-яку автентифікаційну middleware, що довіряє request.url.path, можна тривіально обійти .
Декоратор автентифікації LiteLLM перевіряє request.url.path, щоб визначити, чи потребує запит дійсний API-ключ. Обхід BadHost дозволяє зловмиснику маніпулювати цим URL так, що middleware автентифікації бачить шлях, який не потребує автентифікації, тоді як ASGI-маршрутизатор одночасно спрямовує запит на одну з уразливих кінцевих точок командної ін'єкції MCP .
Це усуває єдиний бар'єр контролю доступу, який стояв між інтернетом та довільним виконанням команд. Зловмисник без жодних облікових даних та попереднього доступу до мережі може надіслати один спеціально сформований HTTP-запит, який повністю обходить автентифікацію та виконує команди операційної системи на хості проксі-сервера LiteLLM . Horizon3.ai підтвердили, що повний ланцюжок працює, і привласнили йому комбіновану оцінку CVSS 10.0 — максимальний рівень небезпеки — оскільки він досягає неавтентифікованого віддаленого виконання коду
.
Успішна експлуатація дає зловмисникам можливість виконання команд із привілеями процесу проксі-сервера LiteLLM. З цього моменту поверхня загрози швидко розширюється:
Додавання CISA вразливості CVE-2026-42271 до каталогу KEV 8 червня 2026 року підтверджує, що вразливість не є теоретичною — зловмисники активно використовують її як зброю прямо зараз . Згідно з Оперативною директивою 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