AIOHTTP — асинхронный клиент-серверный фреймворк HTTP для asyncio и Python. До 3.14.4, когда конвейерная очередь запросов заполнена, чистый анализатор Python хранит неразобранный остаток внутри, а также возвращает те же данные своему вызывающему абоненту. После того, как обработчик отклоняет запрос на обновление, вызывающий абонент передает остаток обратно парсеру, заставляя буфер расти с каждым обработанным запросом и снова отправляя уже обработанные запросы в приложение.
Проблема влияет на развертывание с использованием AIOHTTP_NO_EXTENSIONS или иным образом работает без стандартного колеса расширения C и может вызвать чрезмерное использование памяти и повторную обработку запросов. Эта проблема исправлена в версии 3.14.4.
Показать оригинальное описание (EN)
AIOHTTP is an asynchronous HTTP client/server framework for asyncio and Python. Prior to 3.14.4, when the pipelined request queue is full, the pure-Python parser stores the unparsed remainder internally and also returns the same data to its caller. After a handler declines an upgrade request, the caller feeds the remainder back to the parser, causing the buffer to grow with each handled request and dispatching already-handled requests to the application again. The issue affects deployments using AIOHTTP_NO_EXTENSIONS or otherwise running without the standard C-extension wheel, and can cause excessive memory use and repeated request processing. This issue is fixed in version 3.14.4.
Характеристики атаки
Последствия
Строка CVSS v4.0