2 июня команда Go выпустила минорные релизы go1.26.4 и go1.25.11. В обоих — три исправления безопасности в стандартной библиотеке, плюс правки в компиляторе, рантайме, команде go fix и пакете crypto/fips140.
Первая проблема — CVE-2026-42504 в пакете mime: квадратичная сложность в WordDecoder.DecodeHeader. Специально сконструированный MIME-заголовок с большим числом некорректных encoded-word'ов заставлял декодер жечь процессор. Классический алгоритмический DoS, и он опаснее, чем кажется: разбор MIME — это не только почтовые демоны, но и любой парсер multipart-форм и вложений.
Вторая — CVE-2026-27145 в crypto/x509. Функция VerifyHostname выполняла в цикле избыточные строковые операции, из-за чего стоимость проверки росла квадратично: количество DNS SAN-записей в сертификате умножалось на число меток в проверяемом имени хоста. Сертификат с раздутым списком SAN превращался в способ подвесить TLS-хендшейк. Третья — CVE-2026-42507 в net/textproto: функции возвращали ошибки с неэкранированным пользовательским вводом. То есть атакующий мог протащить в ваши логи произвольный текст и управляющие символы терминала — от подделки строк лога до трюков с эскейп-последовательностями в консоли того, кто эти логи читает. Полный текст анонса с деталями лежит в архиве oss-security.
Что делать практикующему разработчику. Обновление тулчейна обязательно, но само по себе оно ничего не чинит — Go-бинарники статические, уязвимость едет внутри артефакта. Значит, порядок такой: обновить Go, пересобрать и передеплоить все сервисы, а заодно пересобрать Docker-образы с новым базовым golang:1.26. Чтобы не гадать, кого именно задело, прогоните govulncheck ./... — он смотрит не на версию тулчейна, а на реально достижимые из вашего кода символы, и покажет, вызывается ли DecodeHeader или VerifyHostname по факту. Отдельно посмотрите на два места: сервисы, которые парсят входящие письма или multipart-загрузки (там mime-CVE напрямую эксплуатируется извне), и mTLS-эндпоинты, где клиентский сертификат приходит от кого попало. Если в проекте зафиксирована директива toolchain в go.mod — не забудьте поднять и её, иначе CI продолжит собирать старой версией.
Комментарии