AIOHTTP: истощение файловых дескрипторов при multipart-запросах (CVE-2026-111066)
В асинхронном HTTP-фреймворке aiohttp для Python выявлена уязвимость, связанная с обработкой составных (multipart) запросов. Она получила идентификатор CVE-2026-111066 и оценку 8.2 по шкале CVSS, что соответствует высокому уровню критичности.
Подробности
Уязвимости подвержены версии aio-libs aiohttp начиная с 2 и до 3.14.4. При обработке multipart-запросов библиотека может удерживать неограниченное число открытых файловых дескрипторов. Если обработчик использует метод Request.post(), неаутентифицированный удалённый атакующий способен с помощью специально сформированных запросов исчерпать доступный пул файловых дескрипторов процесса. Последствием такой атаки становится отказ в обслуживании: приложение теряет возможность открывать новые файлы и сетевые соединения, что приводит к деградации или полной остановке сервиса.
Отдельно стоит отметить, что эксплуатация не требует учётных данных — достаточно сетевого доступа к уязвимому эндпоинту, принимающему multipart-данные через Request.post(). Проблема устранена в версии 3.14.4.
Что делать
Основная рекомендация — обновить aiohttp до версии 3.14.4 или более поздней. Если немедленное обновление невозможно, следует рассмотреть компенсирующие меры:
— ограничить на уровне reverse proxy или балансировщика размер и количество одновременных multipart-запросов к чувствительным эндпоинтам;
— настроить мониторинг числа открытых файловых дескрипторов процесса и алертинг при приближении к лимитам (ulimit);
— по возможности ограничить сетевой доступ к обработчикам, использующим Request.post(), доверенными сегментами сети.
После обновления рекомендуется проверить конфигурацию лимитов файловых дескрипторов и убедиться, что в логах отсутствуют аномальные всплески multipart-запросов.
Уязвимость CVE-2026-111066 представляет серьёзный риск для сервисов, публично принимающих загрузки файлов через aiohttp: она позволяет провести отказ в обслуживании без аутентификации и без сложной подготовки. Приоритет устранения — высокий; обновление до 3.14.4 закрывает проблему.
Источник: CVE Project (cvelistV5)
