Уязвимость в библиотеке Starlette затрагивает все приложения на версиях ниже 1.0.1, включая любой проект на FastAPI. Проблема в том, как эти фреймворки обрабатывают URL через request.url или starlette.datastructures.URL(scope=...) внутри middleware. Если вы используете такие вызовы в промежуточном слое для принятия решений по безопасности — например, в allowlist, denylist, исключениях CSRF, rate limiting или платёжных шлюзах — ваше приложение уязвимо.
Атака работает на любом ASGI-сервере: Daphne, Granian, Gunicorn, Hypercorn, Anycorn, Uvicorn. Суть в том, что request.url может вернуть некорректный путь, если запрос правильно составлен. Это позволяет атакующему обойти проверки безопасности, основанные на пути URL. Команда X41 из своего открытого репозитория предлагает инструменты для поиска проблемы, но можно начать с простого: grep по коду на request.url.path в файлах middleware.
Под удар попадает широкий спектр сервисов. LLM-инференс-серверы вроде vLLM, LLM-прокси типа LiteLLM, AI-агентные фреймворки, шлюзы для MCP и любые кастомные API. Особенно уязвимы MCP-серверы. Спецификация MCP требует неаутентифицированных OAuth-эндпоинтов для обнаружения — это даёт атакующему надёжный и предсказуемый путь для эксплуатации. Если ваше приложение использует версию Starlette ниже 1.0.1 и проверяет URL в middleware — его надо срочно обновлять.