CVE-2026-42504: квадратичная сложность в WordDecoder.DecodeHeader пакета mime в Go
В стандартной библиотеке Go обнаружена уязвимость CVE-2026-42504: декодирование специально сформированного MIME-заголовка с большим числом некорректных encoded-words приводит к чрезмерной нагрузке на CPU. Проблема затрагивает приложения на Go, обрабатывающие внешние MIME-заголовки, и может использоваться для отказа в обслуживании.
Введение
В пакете mime стандартной библиотеки языка Go выявлена уязвимость, связанная с неэффективной обработкой MIME-заголовков. Проблема получила идентификатор CVE-2026-42504 и касается функции WordDecoder.DecodeHeader, которая применяется для разбора и декодирования encoded-words в заголовках электронной почты и других MIME-сообщений.Подробности
Уязвимость затрагивает стандартную библиотеку Go — пакет mime. Согласно описанию, декодирование вредоносно сформированного MIME-заголовка, содержащего множество некорректных encoded-words, может приводить к чрезмерному потреблению ресурсов CPU. Фактически речь идёт о квадратичной сложности алгоритма обработки: время декодирования растёт непропорционально быстро при увеличении числа некорректных encoded-words в заголовке. Подобный характер поведения открывает возможность для атаки типа «отказ в обслуживании» (DoS): злоумышленнику достаточно передать приложению специально подготовленный заголовок, чтобы вызвать длительную обработку и повышенную нагрузку на процессор. Наиболее подвержены риску сервисы и приложения на Go, которые разбирают MIME-заголовки из недоверенных источников — например, почтовые шлюзы, обработчики входящих сообщений, API, принимающие MIME-данные, и аналогичные компоненты. В записи CVE не указаны конкретные версии затронутого ПО и значение CVSS, поэтому при оценке применимости следует ориентироваться на актуальные рекомендации мейнтейнеров Go и данные производителей продуктов.Что делать
Основная рекомендация — обновить используемую версию Go до релиза, в котором устранена CVE-2026-42504, и пересобрать зависимые приложения. Поскольку уязвимость находится в стандартной библиотеке, обновление затрагивает не отдельный модуль, а среду сборки и скомпилированные бинарники. Дополнительные меры снижения риска: - ограничить приём и обработку MIME-заголовков из недоверенных источников, где это возможно; - применять лимиты на размер и сложность обрабатываемых заголовков на уровне приложения или промежуточного ПО; - настроить мониторинг аномальной нагрузки на CPU в сервисах, разбирающих MIME-данные, чтобы своевременно выявлять попытки эксплуатации; - проверить наличие обновлений у вендоров продуктов, использующих Go, и следовать их рекомендациям.Итог
CVE-2026-42504 — уязвимость отказа в обслуживании в пакете mime стандартной библиотеки Go, вызванная квадратичной сложностью декодирования заголовков с множеством некорректных encoded-words. Для защиты достаточно обновиться до исправленной версии Go и пересобрать приложения; дополнительно стоит ограничить обработку недоверенных MIME-заголовков и контролировать нагрузку на инфраструктуру.Источник: CVE Project (cvelistV5)
