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

1 回复

更多关于Golang 1.14.6 和 1.13.14 版本已正式发布的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


Go 1.14.6 和 1.13.14 版本主要修复了以下安全问题,建议所有用户尽快升级:

  1. CVE-2020-16845encoding/binary 包中的 ReadUvarintReadVarint 函数存在无限循环漏洞。攻击者可以通过特制的输入导致拒绝服务。以下是触发漏洞的示例:
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())
    }
}
  1. CVE-2020-28362cmd/go 在解析模块版本时存在命令注入漏洞。攻击者可以通过特制的模块路径执行任意命令。

  2. 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 系列的用户立即升级以确保系统安全。

回到顶部