![]()
2025 年 10 月 8 日,Go 官方发布了Go 1.25.2版本,同时发布了Go 1.24.8作为旧版本的安全补丁。这是一次重要的安全更新,修复了多个安全漏洞,同时改进了若干运行时与标准库的 Bug。
本次更新共包含10 项安全修复,涉及archive/tar、crypto/tls、crypto/x509、encoding/asn1、encoding/pem、net/http、net/mail、net/textproto、net/url等核心包,以及 runtime、compiler、os、context 等方面的 Bug 修复。以下是详细内容。
一、安全修复内容 1. net/mail: 解析地址时的高 CPU 消耗 (CVE-2025-61725
ParseAddress函数在构建域字面值(domain-literal)地址组件时,通过重复字符串拼接来处理输入。当解析的域字面值过大时,会导致CPU 使用率异常升高。
该问题影响解析不受信任邮件地址的程序。
2. crypto/x509: 检查名称约束的平方级复杂度 (CVE-2025-58187
名称约束检查的算法设计存在问题,某些输入的处理时间会随证书大小非线性增加。
影响验证任意证书链的程序。
3. crypto/tls: ALPN 协议协商错误泄露攻击者控制信息 (CVE-2025-58189
conn.Handshake在服务端 ALPN 协商失败时返回的错误中,可能包含由客户端提供的未转义的攻击者控制文本。
如果程序直接记录这些错误到日志,可能会导致日志注入风险。
4. encoding/pem: 解析无效输入时的平方级复杂度 (CVE-2025-61723
PEM 解析函数在处理部分无效输入时,处理时间会随输入大小非线性增长。
影响解析不受信任 PEM 数据的程序。
5. net/url: IPv6 主机名解析验证不足 (CVE-2025-47912
Parse函数允许在方括号中包含除 IPv6 地址之外的其他值,如 IPv4 地址或主机名,而根据 RFC 3986,这种情况应当禁止。
影响解析 URL 主机部分的程序。
6. encoding/asn1: DER 解析导致内存耗尽 (CVE-2025-58185
在解析 DER 数据时,内存会在验证之前分配,攻击者可构造特制的空 DER 数据导致函数(如asn1.Unmarshal,x509.ParseCertificateRequest,ocsp.ParseResponse)消耗大量内存。
影响解析不受信任 ASN.1 DER 数据的程序。
7. net/http: Cookie 解析无限制导致内存耗尽 (CVE-2025-58186
HTTP 头默认限制为 1MB,但 Cookie 的解析数量此前无上限。攻击者可通过大量微小 Cookie(如a=;),导致服务器分配大量结构体,占用高内存。net/http现已限制 Cookie 数量为3000,可通过httpcookiemaxnum环境变量调整。
8. crypto/x509: DSA 公钥验证导致 panic (CVE-2025-58188
在验证包含 DSA 公钥的证书链时,由于接口类型转换假设其实现了Equal方法,导致程序崩溃。
影响验证任意证书链的程序。
9. archive/tar: 解析 GNU Sparse Map 时未限制分配 (CVE-2025-58183
tar.Reader在解析 GNU tar pax 1.0 格式的稀疏文件时,没有限制稀疏区域块数。攻击者可构造大量稀疏区域的归档文件,导致内存大量分配。对于压缩文件,小的压缩输入可导致大规模解压分配。
10. net/textproto: 读取响应时的高 CPU 消耗 (CVE-2025-61724
Reader.ReadResponse函数通过多次字符串拼接构造响应字符串,当响应行数过多时,导致CPU 占用过高。
二、其他重要修复
除了上述安全问题,Go 1.25.2 还包含以下非安全性修复:
•runtime & compiler
• 修复
debug.decoratemappings不工作的问题• 修复
sync/atomic.Uintptr.Or文档错误• 解决 GOEXPERIMENT=cgocheck2 下编译器错误
• 改进 DWARF 类型导出逻辑
•net/http
• 修复
connCount underflow内部错误
•context
• 修复
Err在Done关闭前返回非 nil 的问题
•crypto/internal/fips140/rsa
• 自检失败时必须触发 panic
•os
• 修复
Root.OpenRoot名称丢失前缀的问题• 修复
Root.MkdirAll并发创建相同路径返回 “file exists” 的问题• 修复在带
FILE_FLAG_OVERLAPPED的卷句柄上调用ReadAt失败的问题
•debug/pe
• 修复解析 llvm-mingw 21 生成目标文件失败的问题
•testing
• 修复
TestIPv4WriteMsgUDPAddrPortTargetAddrIPVersion在 plan9 系统的失败• 修复
testing/synctest无可运行 goroutine 时超时的问题
Go 1.25.2 是一次重要的安全更新版本,涉及多项安全漏洞修复与运行时稳定性提升。建议所有使用 Go 的开发者尽快升级至1.25.2(或 1.24.8 以保持旧分支安全性),尤其是在处理不受信任数据、解析网络输入或运行公共服务的场景中。
我们相信人工智能为普通人提供了一种“增强工具”,并致力于分享全方位的AI知识。在这里,您可以找到最新的AI科普文章、工具评测、提升效率的秘籍以及行业洞察。 欢迎关注“福大大架构师每日一题”,发消息可获得面试资料,让AI助力您的未来发展。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.