python-engineio — это реализация клиента и сервера реального времени Engine.IO на языке Python. Версии до 4.13.2 имеют две конкретные конфигурации сервера python-engineio, в которых размер входящих сообщений не проверяется перед загрузкой сообщений в память. Злоумышленник может воспользоваться этим, чтобы вызвать ненужное выделение памяти на сервере python-engineio.
Этими двумя случаями являются запросы POST при использовании ASGI с длинным транспортом опроса и сообщения WebSocket при использовании Aiohttp с транспортом WebSocket. Версия 4.13.2 устраняет эту проблему. Серверы ASGI теперь загружают тело входящих запросов в память только после подтверждения того, что клиент известен и аутентифицирован, а размер полезной нагрузки меньше максимально допустимого.
Запросы, не соответствующие этим требованиям, отклоняются. Серверы Aiohttp настраивают максимальный размер полезной нагрузки на базовом уровне WebSocket из Aiohttp, чтобы Aiohttp отбрасывал большие сообщения перед их доставкой в python-engineio.
Показать оригинальное описание (EN)
python-engineio is a Python implementation of the Engine.IO realtime client and server. Versions prior to 4.13.2 have two specific configurations of the python-engineio server in which the size of incoming messages is not checked before the messages are loaded into memory. An attacker can take advantage of these to cause unnecessary memory allocations in the python-engineio server. The two cases are POST requests, when using ASGI with the long polling transport and WebSocket messages, when using Aiohttp with the WebSocket transport. Version 4.13.2 addresses this issue. ASGI severs now only load the body of incoming requests into memory after the client is confirmed to be known and authenticated, and the payload size is below the maximum allowed size. Requests that do not comply with these requirements are discarded. Aiohttp servers configure the maximum payload size in the underlying WebSocket layer from Aiohttp, so that large messages are discarded by Aiohttp before they are delivered to python-engineio.
Характеристики атаки
Последствия
Строка CVSS v3.1