Go 1.27.3 и 1.26.10: срочное исправление crypto/x509

Go 1.27.3 и 1.26.10: срочное исправление crypto/x509
Содержание статьи

19 октября 2026 года команда Go выпустила версии 1.27.3 и 1.26.10 с исправлением безопасности в crypto/x509. Пакет перестаёт принимать цепочки, содержащие небольшой набор промежуточных сертификатов, к работе с которыми у разработчиков возникли конкретные претензии по безопасности. Команда Go настоятельно рекомендует обновиться немедленно.

Для читателей Mentoring.digital разберём, что изменилось в проверке сертификатов и как довести обновление до реально работающего сервиса.

Что исправляет crypto/x509

В официальной задаче исправление обозначено как CVE-2026-111943. Метод Verify теперь отфильтровывает цепочки с указанными промежуточными сертификатами, чтобы не возвращать их вызывающему коду.

Речь идёт о конкретной мере ограничения доверия. Объявление не даёт оснований утверждать, что все сертификаты стали небезопасными или что любой сервис на Go уже был взломан. Установленный факт другой: в стандартную библиотеку внесено срочное изменение проверки, и оно доступно в двух поддерживаемых ветках.

Не смешивайте этот выпуск с большим релизом Go 1.27 или предыдущим обновлением 1.27.2. В журнале 1.27.3 указан именно crypto/x509; новые возможности языка не являются причиной сегодняшней рекомендации обновиться.

Почему замены Go на ноутбуке недостаточно

Обновлённая среда разработки и уже собранная программа представляют разные этапы поставки. Чтобы приложение получило изменение стандартной библиотеки, нужно пересобрать его исправленной версией Go и развернуть полученный артефакт. Проверьте также образ сборщика в CI: локальная установка нового Go не меняет его автоматически.

Версию доступной команды показывает go version. Для собранной программы можно вызвать go version с путём к файлу; флаг -m дополнительно выводит встроенные сведения о модулях, когда они доступны. Это помогает проверить именно артефакт, а не полагаться на имя каталога или контейнерного тега.

Если приложение по-особому обрабатывает ошибки TLS или использует собственную логику проверки сертификатов, разберите этот участок отдельно. С небольшим воспроизводимым примером можно обратиться к ментору по Go для разбора сетевого кода.

Что проверить перед развёртыванием

  • Определите используемую ветку и обновите сборку до Go 1.27.3 либо 1.26.10 соответственно.
  • Пересоберите сервисы и утилиты, которые вы поставляете, затем проверьте версию в полученных файлах.
  • На тестовом окружении проверьте соединения с необходимыми внешними и внутренними сервисами, включая обработку ошибок сертификатов.
  • Разверните новые артефакты и убедитесь, что рабочие процессы действительно запущены из обновлённой сборки.

Для команды полезно зафиксировать, где меняется версия инструментария и кто проверяет выпуск. Такой путь от CI до работающего сервиса можно проработать с наставником по сборке и развёртыванию. Проверка завершается на опубликованном артефакте и его работе, а не на сообщении об установке Go.

Похожие статьи по данной теме