Go.1.25.4 和 Go.1.24.10 发布了!!

一、前言

2025 年 11 月,Go 团队发布了:

  • 版本 Go 1.25.4,基于 Go 1.25 系列的小版本修复。(go.dev)
  • 版本 Go 1.24.10,基于 Go 1.24 系列的小版本修复。(go.dev)

根据官方 Release History 页面:

  • Go 1.25.4 于 2025-11-05 发布。(go.dev)
  • Go 1.24.10 于 2025-11-05 发布。(go.dev)

两个版本均为 小版本(patch)修复,目的在于解决已知缺陷、提升稳定性、安全性,而不是新增功能。(go.dev)

二、里程碑摘要(CherryPickApproved)

以下内容均来自 GitHub issues 所有修复项状态均为 "已关闭(已完成)",关闭操作由 gopherbot 执行。

Go 1.25.4

1、pem/encoding:格式错误的行结尾可能导致程序崩溃

  • 关闭时间:2025 年 10 月 30 日
  • 说明:该修复针对 pem 编码模块,解决了当处理的文件或数据中存在格式不正确的行结尾(如换行符、回车符格式异常)时,可能引发程序突然崩溃(panic)的问题

2、cmd/compile:any (func (){})==any (func (){}) 语句未按预期触发程序崩溃

  • 关闭时间:2025 年 10 月 30 日
  • 说明:在 Go 语言编译器层面,对于 "any (func (){})==any (func (){})" 这种比较两个匿名函数包装为 any 类型后是否相等的语句,原本按照设计应触发程序崩溃,但此前版本未实现该逻辑,此修复纠正了这一问题

3、os:在 Windows 系统中,RemoveAll 函数删除包含只读文件的目录时,出现 "unlinkat ... 访问被拒绝" 错误

  • 关闭时间:2025 年 10 月 29 日
  • 说明:针对 Windows 操作系统下 os 模块的 RemoveAll 函数,解决了其在删除包含只读属性文件的目录时,会因权限问题抛出 "unlinkat ... 访问被拒绝" 错误,导致目录无法正常删除的问题

4、 encoding/pem:解码包含前置无用数据的块时出现功能退化问题

  • 关闭时间:2025 年 10 月 25 日
  • 说明:在 encoding/pem 模块解码 PEM 数据块过程中,当数据块前存在无关的前置无用数据(如多余字符、空白内容等)时,模块出现了解码功能退化(如解码失败、结果异常)的情况,此修复解决了该问题

5、net/url:方括号中的 IPv4 映射 IPv6 地址应被视为有效地址

  • 关闭时间:2025 年 10 月 18 日
  • 说明:在 net/url 模块处理 URL 地址时,对于 "IPv4 映射 IPv6 地址"(即通过特定格式将 IPv4 地址嵌入 IPv6 地址中),当该地址包裹在方括号内时,此前版本未将其识别为有效地址,此修复修正了这一判定逻辑,使这类地址能被正常识别

6/crypto/internal/fips140/subtle:Go 1.25 版本中,subtle.xorBytes 函数在 MIPS 架构上出现程序崩溃

  • 关闭时间:2025 年 10 月 29 日
  • 说明:在 Go 1.25 版本的 crypto/internal/fips140/subtle 内部模块中,subtle.xorBytes 函数在 MIPS 架构的设备或环境上运行时,会出现程序崩溃的情况,此修复解决了该架构下的兼容性问题

7、runtime:在 linux/arm64 架构上通过 QEMU 运行 linux/amd64 架构的编译任务时,构建失败

  • 关闭时间:2025 年 10 月 28 日
  • 说明:在 Go 运行时(runtime)层面,当在 linux/arm64 架构的系统中,通过 QEMU(一种虚拟机 / 模拟器工具)模拟运行 linux/amd64 架构的 Go 程序编译任务时,会出现构建过程失败的问题,此修复解决了该跨架构模拟编译的问题

8、cmd/link:处理复杂泛型内联时,链接器出现程序崩溃及重定位错误

  • 关闭时间:2025 年 10 月 28 日
  • 说明:在 Go 的链接器(cmd/link)处理包含复杂泛型内联(即将泛型函数的代码嵌入调用处)的程序时,链接器会出现程序崩溃,同时还会产生重定位错误(程序内存地址分配相关错误),此修复解决了这些链接阶段的问题

Go 1.24.10

1、pem/encoding:格式错误的行结尾可能导致程序崩溃

  • 关闭时间:2025 年 10 月 30 日
  • 说明:该修复针对 pem 编码模块,解决了当处理的文件或数据中存在格式不正确的行结尾(例如换行符、回车符格式异常)时,可能引发程序突然崩溃(panic)的问题,此修复是从更高版本回溯到 1.24 版本的。

2、encoding/pem:解码包含前置无用数据的块时出现功能退化问题

  • 关闭时间:2025 年 10 月 25 日
  • 说明:在 encoding/pem 模块解码 PEM 数据块的过程中,当数据块前存在无关的前置无用数据(如多余字符、空白内容等)时,模块出现了解码功能退化(比如解码失败、结果异常)的情况,此修复解决了该问题,且是从其他版本回溯至 1.24 版本的。

3、net/url:方括号中的 IPv4 映射 IPv6 地址应被视为有效地址

  • 关闭时间:2025 年 10 月 18 日
  • 说明:在 net/url 模块处理 URL 地址时,对于 "IPv4 映射 IPv6 地址"(即通过特定格式将 IPv4 地址嵌入到 IPv6 地址中形成的地址),当该地址包裹在方括号内时,此前的 1.24 版本未将其识别为有效地址,此修复修正了这一地址有效性判定逻辑,使这类地址能够被正常识别,且该修复是从更高版本回溯到 1.24 版本的。

三、升级选择

  • 如果在使用 Go.1.25 系列的,强烈建议尽快升级至1.25.4,该版本对编译器、运行时、标准库等多个模块进行了修复,使用该版本可以提高项目的稳定性,避免出现潜在 painc 和多平台兼容性的问题。
  • 如果在使用 Go.1.24 系列的,仍然建议升级只至 1.24.10,以提高稳定性。
  • 对一跨平台、异构硬件运行的项目,更应优先升级,以避免跨平台相关的已知问题。

四、升级建议

1、 升级方式

  • 【推荐】通过 Go 官方二进制或源码包的方式进行编译升级,参考 Release History 的版本说明(go.dev)
  • 【推荐】通过 Homebrew 安装源码包的方式进行编译升级(macos)

2、注意事项

  • 升级后注意观察是否有新问题产生
  • 建议升级前执行完整的回归测试
相关推荐
ChineHe21 小时前
Gin框架基础篇001_路由与路由组详解
后端·golang·gin
神奇小汤圆21 小时前
深入理解Linux IPIP隧道:原理、配置与实战
后端
计算机毕设VX:Fegn089521 小时前
计算机毕业设计|基于springboot + vue酒店管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
laozhoy121 小时前
深入理解Go语言errors.As方法:灵活的错误类型识别
开发语言·后端·golang
周杰伦_Jay21 小时前
【Go 语言】核心特性、基础语法及面试题
开发语言·后端·golang
czlczl200209251 天前
Spring Boot 参数校验进阶:抛弃复杂的 Group 分组,用 @AssertTrue 实现“动态逻辑校验”
java·spring boot·后端
a努力。1 天前
网易Java面试被问:偏向锁在什么场景下反而降低性能?如何关闭?
java·开发语言·后端·面试·架构·c#
卡尔特斯1 天前
Go 语言入门核心概念总结
go
小新1101 天前
Spring boot 之 Hello World 番外:如何修改端口号
java·spring boot·后端
百花~1 天前
Spring Boot 日志~
java·spring boot·后端