S
Генерация кодаStarletteBadHostCVE-2026-48710MCPкибербезопасность

BadHost: дыра в Starlette угрожает миллионам ИИ-агентов

Сергей Сергеев, редактор gen-hub.ru
Сергей Сергеев
Редактор gen-hub.ru
·4 мин чтения

Одна буква — и вся защита рухнула

Представьте: вы строите сложную систему ИИ-агентов, тщательно настраиваете авторизацию, выбираете проверенные фреймворки — и всё это рассыпается из-за одного символа в HTTP-заголовке. Именно так работает уязвимость BadHost, которая на этой неделе взорвала сообщество разработчиков Python и безопасников по всему миру. Это не теоретическая угроза в духе «когда-нибудь кто-нибудь может попробовать» — это уже активно эксплуатируемая дыра в одном из самых популярных open source пакетов планеты.

Что такое Starlette и почему это важно именно сейчас

Starlette — это ASGI-фреймворк для Python, который скачивают 325 миллионов раз в неделю. Для сравнения: это примерно как если бы каждый Python-разработчик на Земле скачивал его несколько раз в день. На его основе построен FastAPI — один из самых любимых инструментов для создания backend-сервисов в мире машинного обучения. Кроме него в зону риска попали vLLM, LiteLLM, Text Generation Inference, большинство OpenAI-совместимых прокси и — что особенно болезненно — серверы на базе MCP (Model Context Protocol).

MCP — это протокол, который позволяет ИИ-агентам от крупных провайдеров подключаться к внешним ресурсам: базам данных пользователей, почте, календарям, корпоративным системам. Грубо говоря, это «нервная система» современного агентного ИИ. И именно там хранятся учётные данные для всех этих подключений — настоящий Клондайк для злоумышленника.

Как это работает: элегантная простота атаки

Технически суть BadHost (CVE-2026-48710) выглядит почти издевательски просто. Starlette восстанавливает полный URL запроса на основе HTTP-заголовка Host и пути — но при этом никак не валидирует значение Host. Приложения, которые используют объект `request.url` для авторизации, получают на вход подделанные данные и радостно пропускают злоумышленника.

Один символ в заголовке — и path-based авторизация обходится полностью. Помимо этого, уязвимость открывает возможности для SSRF-атак (подделка запросов на стороне сервера) и в ряде конфигураций — для удалённого выполнения кода. Это уже не просто «утечка данных», это потенциальный полный захват сервера.

Исследователи из X41 D-Sec, которые обнаружили уязвимость, уже провели сканирование и зафиксировали реально открытые данные: клинические базы данных биофармацевтических компаний с данными об M&A-сделках, системы верификации личности с живыми биометрическими данными, SSH-доступ к промышленным IoT-устройствам, полный доступ к корпоративным почтовым ящикам вплоть до удаления писем, базы кандидатов HR-систем и даже доступ к AWS-топологии облачных инфраструктур.

Рейтинг 7/10 — это преступная скромность

Формально BadHost получила оценку 7 из 10 по шкале CVSS. Сами исследователи из Secwest прямо назвали эту классификацию «существенно занижающей реальную угрозу». X41 D-Sec присвоили ей статус критической — и я с ними согласен полностью.

Дело в том, что CVSS оценивает уязвимость в вакууме, без учёта экосистемного контекста. А здесь контекст — это миллионы MCP-серверов, которые сейчас разворачиваются с космической скоростью по всему миру на волне агентного ИИ-бума. Каждый такой сервер — это потенциально открытый сейф с ключами от десятков корпоративных систем.

Кто под ударом и что делать прямо сейчас

Если вы используете FastAPI, vLLM, LiteLLM или любой другой пакет, который тянет Starlette как зависимость — у вас проблема, если вы не обновились. Патч вышел в пятницу в версии Starlette 1.0.1. Обновление занимает минуты, откладывать его — значит осознанно рисковать.

X41 D-Sec совместно с Nemesis запустили онлайн-сканер для проверки конкретного сервера на уязвимость. Это хороший первый шаг, но не заменяет полноценный аудит конфигурации firewall. Серверы за корректно настроенным брандмауэром защищены лучше, но большинство дев-инстансов и стейджинг-окружений — нет, и именно там утечки случаются чаще всего.

Российский контекст: двойной удар

Для российских разработчиков и компаний ситуация имеет дополнительное измерение. Значительная часть отечественных ИИ-стартапов строит свои решения на FastAPI и vLLM — это де-факто стандарт индустрии, который не обходит стороной никакие географические границы. При этом многие команды работают в режиме «запустить быстро, разберёмся с безопасностью потом» — и BadHost — это именно тот сценарий, где такой подход оборачивается катастрофой.

Обновить Starlette можно без VPN и без зарубежных карт — PyPI работает в России в штатном режиме. Команда `pip install starlette --upgrade` решает проблему мгновенно. Нет ни одной причины тянуть.

Системная проблема глубже, чем один пакет

BadHost — это симптом более широкой болезни. Экосистема агентного ИИ развивается так стремительно, что security-аудит просто не успевает за скоростью внедрения. MCP-серверы разворачиваются тысячами в день, разработчики копируют примеры из документации и туториалов, не задумываясь о том, что авторизация через `request.url` в Starlette — это ловушка.

Антропик, OpenAI и другие крупные провайдеры активно продвигают MCP как стандарт агентного взаимодействия. Это правильно и неизбежно — но вместе с ростом экосистемы растёт и поверхность атаки. Индустрии нужен серьёзный разговор о том, как встраивать security-проверки прямо в процесс разработки агентных систем, а не добавлять их постфактум.

Patch сейчас. Аудит конфигураций — сегодня. Разговор с командой о security-гигиене в agenttic AI — на этой неделе.

Источники

Все эти инструменты — уже на Genova-ai

Картинки, видео, музыка, голос и ИИ-чат в одном месте. Без VPN и зарубежных карт.

Картинки
Видео
Музыка
Голос
ИИ-чат
Попробовать бесплатно

Похожие новости