Go 1.26.4 — патч-релиз Go, выпущенный 2 июня 2026 года. Главная ценность обновления — исправления безопасности в crypto/x509, mime и net/textproto, а также правки стабильности компилятора, runtime, go fix и crypto/fips140.

Go 1.26.4 закрывает уязвимости в сетевых и криптографических компонентах
Go 1.26.4 относится к минорным корректирующим выпускам ветки Go 1.26. По данным официальной страницы Go Release History, релиз вышел 2 июня 2026 года и включает исправления безопасности в трёх пакетах стандартной библиотеки:
crypto/x509;mime;net/textproto.
Для обычного разработчика это означает простую вещь: обновление касается базовых механизмов, которые часто работают глубоко внутри приложений. Даже если проект напрямую не вызывает crypto/x509, он может использовать проверку сертификатов через TLS, HTTP-клиенты, gRPC, SDK облачных сервисов, базы данных или внутренние библиотеки.
Пакет crypto/x509 отвечает за работу с X.509-сертификатами: разбор, проверку цепочек доверия, сертификаты серверов и клиентов. Ошибки в этой зоне особенно чувствительны для сервисов, которые устанавливают TLS-соединения, принимают клиентские сертификаты или проверяют подписи.
mime и net/textproto связаны с обработкой текстовых протоколов и заголовков. Эти компоненты используются в сетевом коде, HTTP-инфраструктуре, почтовых форматах и других сценариях, где приложение разбирает данные, пришедшие извне.
Исправления компилятора и runtime снижают риск редких сбоев
Кроме исправлений безопасности, Go 1.26.4 содержит правки в компиляторе и runtime. Это важная часть обновления для проектов, где стабильность сборки и поведения приложения важнее заметных новых функций.
Компилятор отвечает за преобразование Go-кода в исполняемый файл. Ошибка на этом уровне может проявляться редко: только при определённой архитектуре, комбинации оптимизаций, типах данных или конкретной форме кода. Поэтому исправления компилятора часто важны даже для проектов, которые уже успешно собираются на предыдущей версии.
Runtime — это часть Go, которая сопровождает программу во время выполнения. Он управляет горутинами, планировщиком, сборщиком мусора, стеком, паниками и низкоуровневыми механизмами работы программы. Исправления runtime особенно значимы для серверов, фоновых воркеров, CLI-утилит и высоконагруженных сервисов, которые работают долго и обрабатывают много параллельных задач.
В Go 1.26.4 также исправлены проблемы в go fix и crypto/fips140. go fix помогает автоматически обновлять старые конструкции кода под новые правила и рекомендации. crypto/fips140 важен для проектов, которым нужны криптографические режимы и ограничения, связанные с FIPS 140.
Go 1.26 остаётся совместимой веткой без резких изменений API
Go 1.26.4 наследует общую совместимость ветки Go 1.26. В официальных заметках к Go 1.26 команда Go отдельно подчёркивает сохранение обещания совместимости Go 1: почти все программы должны продолжать компилироваться и работать как раньше.
Это особенно важно для команд, которые обновляют Go в рабочих проектах. Переход с Go 1.26.3 на Go 1.26.4 должен восприниматься как регулярное сервисное обновление. Оно закрывает уязвимости и исправляет ошибки, но не требует переписывания кода из-за изменения синтаксиса языка.
Для понимания контекста стоит отделять Go 1.26 как крупный релиз от Go 1.26.4 как патч-релиза. В Go 1.26 появились более заметные изменения всей ветки, включая новый сборщик мусора, снижение накладных расходов cgo, экспериментальный simd/archsimd, экспериментальный runtime/secret и профиль утечек горутин в runtime/pprof, о чём команда Go писала в публикации Go 1.26 is released. Go 1.26.4 уже развивает эту ветку через исправления безопасности и стабильности.
Обновление особенно важно для серверов, CLI и CI-сборок
Go 1.26.4 стоит рассматривать как приоритетное обновление для проектов, которые принимают внешние данные или устанавливают сетевые соединения. В эту группу попадают API-серверы, прокси, микросервисы, CLI-инструменты, агенты мониторинга, Kubernetes-операторы, внутренние DevOps-утилиты и сервисы, использующие TLS.
Особое внимание стоит уделить проектам, где Go используется в контейнерах. Образ может оставаться на старой версии Go даже после обновления локальной машины разработчика. Это частая причина ситуации, когда локальная сборка уже защищена, а production-образ продолжает собираться старым toolchain.
Практический порядок обновления выглядит так:
- Обновить локальный Go SDK до версии 1.26.4 с официальной страницы go.dev/dl.
- Проверить установленную версию командой:
go version- Обновить базовые Docker-образы, если проект собирается в контейнере:
FROM golang:1.26.4- Пересобрать зависимости и запустить тесты:
go test ./...
go vet ./...- Пересобрать production-бинарники и образы.
- Проверить CI/CD-конфигурации, где версия Go может быть закреплена отдельно.
Для GitHub Actions версия обычно указывается в actions/setup-go:
- uses: actions/setup-go@v5
with:
go-version: '1.26.4'Если проект использует toolchain в go.mod, можно явно закрепить нужную версию:
toolchain go1.26.4Проверка после обновления помогает поймать проблемы до релиза
Патч-релизы Go обычно проходят спокойно, но безопаснее обновляться через короткий цикл проверки. Сначала стоит прогнать unit-тесты, затем интеграционные тесты, затем сборку контейнеров и smoke-тесты окружения.
Минимальный чек-лист после установки Go 1.26.4:
go versionпоказываетgo1.26.4;- CI использует ту же версию, что и локальная среда;
- Dockerfile и образы сборки обновлены;
go test ./...проходит без падений;go vet ./...не выявляет новых проблем;- production-бинарник пересобран после обновления toolchain;
- зависимости и внутренние SDK не фиксируют старую версию Go в своих пайплайнах.
Если проект использует TLS, mTLS, сертификаты, почтовые форматы, HTTP-заголовки или нестандартный разбор MIME-данных, обновление стоит поставить выше в очереди. Эти зоны напрямую связаны с пакетами, затронутыми исправлениями безопасности.
Главный вывод
Go 1.26.4 — служебный выпуск, который стоит установить без долгого откладывания. Он не меняет привычную модель разработки на Go, зато закрывает уязвимости в стандартной библиотеке и исправляет проблемы в компиляторе, runtime и связанных инструментах.
Оптимальный следующий шаг — обновить Go в локальной среде, CI и Docker-образах, затем пересобрать проекты и прогнать тесты. Для публичных серверов, инфраструктурных утилит и приложений с TLS это обновление имеет повышенный приоритет.