Вышли патч-релизы Go 1.26.3 и 1.25.10. Оба содержат только security-фиксы, никаких новых фич.
Что исправили
Самая серьёзная уязвимость в
cmd/go. Вредоносный прокси мог подсунуть изменённую версию тулчейна, обойдя проверку через базы контрольных сумм. Проблема была в том, что если база контрольных сумм возвращала пустой ответ без записи о модуле, команда
go считала валидацию успешной. Теперь проверяется наличие нужной подписи, а не просто корректность той, что пришла.Важно: установка
GOTOOLCHAIN в фиксированную версию не защищает от этой уязвимости. Нужно обновить сам базовый тулчейн.Если вы использовали нестандартный
GOPROXY, проверить, не были ли затронуты зависимости, можно так:rm go.sum && go mod tidy && go mod verify
Остальные исправления затрагивают стандартную библиотеку.
net/http/httputil: ReverseProxy мог пробрасывать параметры запроса, которые превышали лимит urlmaxqueryparams, скрывая их от функции Rewrite.net/mail: два отдельных бага в consumePhrase и consumeComment приводили к квадратичным аллокациям при парсинге email-адресов — классический вектор для DoS.net/http: HTTP/2 транспорт уходил в бесконечный цикл при получении SETTINGS_MAX_FRAME_SIZE равного нулю. Это позволяло серверу положить клиент.html/template: два XSS-бага. Первый — пустой или содержащий пробелы атрибут type ломал экранирование в блоке script. Второй — пробелы вокруг = в атрибуте мета-тега обходили URL-экранирование.net: паника в Dial и LookupPort на Windows при NUL-байте в строке. Теперь возвращается ошибка.net: двойное освобождение C-памяти при обработке очень длинного CNAME-ответа через cgo.cmd/go: команда go bug писала файлы с предсказуемыми именами во временную директорию. Атакующий мог создать симлинк и получить перезапись произвольного файла. Исправлено через os.MkdirTemp.cmd/go: go tool pack не проверял пути при извлечении архива, что позволяло записывать файлы в произвольные места. Теперь имена с компонентами пути отклоняются.➡️ Источник
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека Go-разработчика
#GoLive
