Уязвимость в Web::Simple для Perl позволяет раздувать память через заголовок Content-Length (CVE-2026-114629)
В модуле Web::Simple для Perl до версии 0.035 обнаружена уязвимость, связанная с неконтролируемым выделением памяти при разборе URL-кодированных параметров тела запроса. Атакующий без аутентификации может отправить завышенный заголовок Content-Length и спровоцировать значительное потребление памяти. Проблема затрагивает веб-приложения на Perl, использующие уязвимые маршруты.
Подробности
Проблема присутствует в версиях Web::Simple до 0.035. Функция Web::Dispatch::ParamParser::get_unpacked_body_from читает тело запроса с типом application/x-www-form-urlencoded одним вызовом read, при этом размер буфера определяется значением заголовка Content-Length. Ограничение на размер отсутствует, а возвращаемое значение read игнорируется. Поскольку в Perl операция read увеличивает буфер до запрошенной длины ещё до фактического чтения, заявленный Content-Length напрямую определяет объём выделяемой памяти. Эксплуатация возможна через любой маршрут, чья спецификация диспетчеризации предусматривает сопоставление параметров тела вида %name (например, sub (POST + %name=)). Атакующему достаточно отправить запрос с Content-Length, значительно превышающим реальный размер тела, — аутентификация при этом не требуется. Это позволяет провоцировать избыточное потребление памяти вплоть до отказа в обслуживании. Информация о значении базовой оценки CVSS в записи CVE не приводится, поэтому количественная оценка критичности не указывается.Что делать
Основная рекомендация — обновить Web::Simple до версии 0.035 или более поздней, где проблема устранена. Если обновление невозможно, следует рассмотреть компенсирующие меры: ограничение максимального размера тела запроса и допустимых значений Content-Length на уровне обратного прокси или веб-сервера, а также ограничение памяти, доступной процессам приложения. Дополнительно рекомендуется проанализировать маршруты с сопоставлением параметров тела %name и, где это возможно, сократить их использование для недоверенных запросов. Итог: уязвимость CVE-2026-114629 относится к классу атак на истощение ресурсов и требует внимания разработчиков и администраторов Perl-приложений на базе Web::Simple. Своевременное обновление до версии 0.035 закрывает вектор эксплуатации; при отсутствии такой возможности снизить риск помогут ограничения на размер запросов на периметре.Источник: CVE Project (cvelistV5)
