Golang 1.14.6 和 1.13.14 版本已正式发布
Golang 1.14.6 和 1.13.14 版本已正式发布 大家好,
我们刚刚发布了 Go 1.14.6 和 1.13.14 版本,这是两个次要的补丁版本。
查看发布说明以获取更多信息: https://golang.org/doc/devel/release.html#go1.14.minor
你可以从 Go 官方网站下载二进制文件和源代码发行版: https://golang.org/dl/
如果使用 Git 克隆的源代码进行编译,请通过以下命令更新到该版本:
git checkout go1.14.6
然后像往常一样进行构建。
感谢所有为此次发布做出贡献的人。
祝好, Go 团队 Andy
更多关于Golang 1.14.6 和 1.13.14 版本已正式发布的实战教程也可以访问 https://www.itying.com/category-94-b0.html
更多关于Golang 1.14.6 和 1.13.14 版本已正式发布的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
Go 1.14.6 和 1.13.14 版本主要修复了以下安全问题,建议所有用户尽快升级:
- CVE-2020-16845:
encoding/binary包中的ReadUvarint和ReadVarint函数存在无限循环漏洞。攻击者可以通过特制的输入导致拒绝服务。以下是触发漏洞的示例:
package main
import (
"encoding/binary"
"bytes"
)
func main() {
// 恶意数据:0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff
data := []byte{0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}
buf := bytes.NewBuffer(data)
// 在修复前,这会进入无限循环
_, err := binary.ReadUvarint(buf)
if err != nil {
println("Error:", err.Error())
}
}
-
CVE-2020-28362:
cmd/go在解析模块版本时存在命令注入漏洞。攻击者可以通过特制的模块路径执行任意命令。 -
net/http:修复了 HTTP/2 连接耗尽攻击漏洞,攻击者可以通过特制的请求导致服务器资源耗尽。
升级方法:
# 使用 go get 升级
go get golang.org/dl/go1.14.6
go1.14.6 download
# 或者直接下载二进制包
wget https://golang.org/dl/go1.14.6.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.14.6.linux-amd64.tar.gz
对于生产环境,建议先测试兼容性:
package main
import (
"fmt"
"runtime"
)
func main() {
fmt.Printf("Go version: %s\n", runtime.Version())
// 验证修复的功能
fmt.Println("Security patches applied for CVE-2020-16845 and CVE-2020-28362")
}
这些补丁版本不包含新功能,主要是安全修复。建议所有使用 Go 1.14 和 1.13 系列的用户立即升级以确保系统安全。

