Уязвимость BadHost в Starlette ставит под угрозу тысячи AI-сервисов

BadHost

Критическая уязвимость, получившая название BadHost и идентификатор CVE-2026-48710, обнаружена в веб-фреймворке Starlette. Она открывает доступ к атакам на тысячи приложений с искусственным интеллектом и API-сервисов. Проблему выявила компания X41 D-Sec в ходе аудита безопасности, организованного организацией OSTIF. Суть уязвимости заключается в том, что злоумышленники могут манипулировать обработкой входящих запросов на сервере. Это позволяет обходить механизмы аутентификации и получать несанкционированный доступ к защищённым конечным точкам.

Поскольку Starlette широко используется как основа для FastAPI и других современных Python-сервисов с AI, влияние этой уязвимости на экосистему искусственного интеллекта очень велико. Давайте разберёмся, в чём именно проблема.

Корень уязвимости

Причина кроется в том, как старые версии Starlette обрабатывают HTTP-заголовок Host. Фреймворк формирует объект request.url напрямую из значения этого заголовка, который поступает от пользователя, без должной очистки. Такое небезопасное поведение позволяет атакующему создать вредоносный запрос, меняющий интерпретацию пути в request.url. В результате приложение ошибочно воспринимает защищённые маршруты как легитимные.

Это значит, что промежуточное программное обеспечение аутентификации, основанное на пути запроса (path-based authentication middleware), которое часто используется для ограничения доступа к административным или внутренним API, можно обойти без каких-либо учётных данных. Уязвимость не требует аутентификации для эксплуатации, что повышает её серьёзность.

Кого это касается

Проблема затрагивает прежде всего AI-инфраструктуру, которая сильно зависит от FastAPI и Starlette. В зону риска попадают широко используемые серверы для вывода моделей, такие как vLLM и LiteLLM, серверы протокола MCP (Model Context Protocol - протокол контекста модели), API, совместимые с OpenAI, а также различные фреймворки для создания AI-агентов. Во многих развёртываниях чувствительные конечные точки защищены только проверкой URL-пути. Именно такие системы особенно уязвимы перед данной манипуляцией.

Атакующие, эксплуатирующие BadHost, могут получить доступ к ограниченным AI-моделям, извлечь конфиденциальные данные промптов или использовать вычислительные ресурсы для несанкционированных задач. Исследователи безопасности предупреждают: эксплуатация этой уязвимости относительно проста и не требует аутентификации.

Как это работает на практике

В реальном сценарии атаки специально сформированный заголовок Host заставляет серверные службы неправильно интерпретировать запросы. В результате открываются скрытые или внутренние конечные точки, которые никогда не предназначались для публичного доступа. Более того, это может способствовать латеральному перемещению внутри AI-сред, особенно если сегментация инфраструктуры выполнена слабо.

Представьте: злоумышленник отправляет запрос к серверу, но подставляет в заголовок Host значение, которое изменяет воспринимаемый путь. Система считает, что запрос идёт к разрешённому ресурсу, хотя на самом деле он направлен к административной панели. Аутентификация не срабатывает, потому что проверка пути не видит подмены.

Что делать для защиты

Разработчикам и организациям настоятельно рекомендуется обновить Starlette до версии 1.0.1 или более новой - в ней уже содержится исправление. Кроме того, стоит внедрить строгую проверку заголовка Host как на уровне приложения, так и на уровне обратного прокси. Это поможет снизить риски.

Специалистам по безопасности также следует отказаться от использования только аутентификации на основе пути и перейти к многослойным механизмам проверки. Автоматизированные средства сканирования, например инструменты от Nemesis, способны выявить открытые AI-конечные точки и уязвимые развёртывания во всей инфраструктуре.

Уязвимость BadHost наглядно демонстрирует, как традиционные проблемы веб-приложений пересекаются с современными AI-системами. Поскольку инфраструктура искусственного интеллекта продолжает быстро масштабироваться, даже небольшие ошибки в обработке запросов могут привести к серьёзным последствиям. Своевременное обновление и надёжная проверка входных данных становятся критически важными.

В итоге можно сказать: эта история - ещё один сигнал о том, что безопасность AI не должна сводиться только к защите моделей. Фреймворки, на которых они построены, тоже требуют пристального внимания. И BadHost - далеко не последняя уязвимость такого рода.

Ссылки

Комментарии: 0