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、注意事项

  • 升级后注意观察是否有新问题产生
  • 建议升级前执行完整的回归测试
相关推荐
虎子_layor1 小时前
告别Redis瓶颈:Caffeine本地缓存优化实战指南
java·后端
q***98521 小时前
什么是Spring Boot 应用开发?
java·spring boot·后端
码一行1 小时前
从0到1用Go撸一个AI应用?Eino框架让你效率翻倍!
后端·go
掘金一周2 小时前
大部分人都错了!这才是chrome插件多脚本通信的正确姿势 | 掘金一周 11.27
前端·人工智能·后端
bcbnb2 小时前
苹果App上架全流程指南:从注册到审核通过,一文读懂
后端
aiopencode2 小时前
在 Windows 环境完成 iOS 上架,跨平台发布体系的落地实践
后端
疯狂的程序猴2 小时前
Fiddler抓包配置与使用教程,HTTPHTTPS抓包、代理设置与接口调试完整指南
后端
每天进步一点_JL2 小时前
事务与消息中间件:分布式系统中的可见性边界问题
分布式·后端
bcbnb2 小时前
Ipa Guard 集成到 CICD 流程,让 iOS 加固进入自动化时代的完整工程方案
后端