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

  • 升级后注意观察是否有新问题产生
  • 建议升级前执行完整的回归测试
相关推荐
永远不会的CC5 小时前
浙江华昱欣实习(4月23日~ 4月19日)
后端·学习
直奔標竿5 小时前
Java开发者AI转型第二十五课!Spring AI 个人知识库实战(四)——RAG来源追溯落地,拒绝AI幻觉
java·开发语言·人工智能·spring boot·后端·spring
嘟嘟MD5 小时前
程序员副业 | 2026年4月复盘
后端·创业
时空系5 小时前
认识Rust——我的第一个程序 Rust中文编程
开发语言·后端·rust
DevilSeagull6 小时前
Windows 批处理 (Batch) 编程: 从入门到入土. (一) 基础概念与环境配置
开发语言·windows·后端·batch·语言
CAE虚拟与现实6 小时前
五一假期闲来无事,来个前段、后端的说明吧
前端·后端·vtk·three.js·前后端
0xDevNull6 小时前
Java泛型详解
java·开发语言·后端
yeeanna6 小时前
GO函数的特殊性
开发语言·后端·golang
时空系6 小时前
第6篇:数据容器——管理大量数据 Rust中文编程
开发语言·后端·rust
eLIN TECE6 小时前
Go基础之环境搭建
开发语言·后端·golang