Критическая уязвимость безопасности в одном из самых широко используемых веб-фреймворков Python оставила миллионы AI-агентов, инструментов машинного обучения и производственных сервисов уязвимыми для атак без аутентификации. Уязвимость, идентифицированная как CVE-2026-48710 и прозванная «BadHost», затрагивает Starlette — открытый фреймворк, который скачивают 325 миллионов раз в неделю.
Это не опечатка. 325 миллионов. В неделю. И поскольку Starlette служит основой для FastAPI и обширной экосистемы асинхронных проектов на Python, радиус воздействия гораздо шире одной только библиотеки.
Что на самом деле делает BadHost
Starlette реконструирует URL запроса, используя HTTP-заголовок Host, который злоумышленник может свободно манипулировать, и конкатенирует его с путём запроса перед повторным разбором результата. Фреймворк никогда не проверяет заголовок Host заранее.
Внедряя определённые символы, такие как /, ? или #, в заголовок Host, злоумышленник может изменить расположение границ пути в восстановленном URL. Это позволяет обойти любое промежуточное ПО, зависящее от проверок аутентификации на основе пути. Не требуются учётные данные. Не нужна сложная цепочка эксплуатации. Достаточно специально сформированного HTTP-заголовка.
Результатом является полное обхода аутентификации на затронутых приложениях. Злоумышленники, эксплуатирующие BadHost, могут получить доступ к защищенным конечным точкам, получить доступ к конфиденциальным данным и потенциально украсть учетные данные для сторонних сервисов, подключенных к уязвимому приложению.
Проблема с инфраструктурой ИИ
Что особенно тревожно, так это список проектов нижнего уровня, зависящих от Starlette. FastAPI, один из самых популярных фреймворков для создания веб-сервисов на Python, работает поверх него. То же самое относится к vLLM и LiteLLM — двум широко используемым фреймворкам для развертывания крупных языковых моделей в производственных средах. Также затронуты MCP-серверы — инфраструктура Model Context Protocol, которая обеспечивает работу инструментов для AI-агентов. Тысячи открытых проектов зависят от Starlette для своей работы, создавая обширную сеть косвенных зависимостей, в которой одна уязвимость распространяется дальше.
Уязвимость затрагивает все версии Starlette ранее 1.0.1. Исправления были выпущены начиная с этой версии, а бесплатный сканер для выявления затронутых приложений доступен на badhost.org.
Паттерн, а не аномалия
BadHost не появился на пустом месте. Раскрытие информации происходит на фоне растущего волнения проблем безопасности, поражающих фреймворки AI-агентов в 2025 и 2026 годах, включая атаки с внедрением запросов и уязвимости удаленного выполнения кода.
Проект может даже не импортировать Starlette напрямую, но всё равно оставаться уязвимым, поскольку что-то из его зависимостей это делает.
Что это означает для инвесторов
Непосредственное последствие — операционное. Командам, управляющим AI-агентами или инфраструктурой для обслуживания LLM, необходимо проверить дерево зависимостей и обновиться до Starlette 1.0.1 или более поздней версии. Любая задержка увеличивает риск эксплуатации уязвимости, для которой не требуются аутентификация или специальный доступ.
