[安全] Golang 1.13.7 和 1.12.16 版本正式发布
[安全] Golang 1.13.7 和 1.12.16 版本正式发布 大家好,
我们刚刚发布了 Go 1.13.7 和 Go 1.12.16 版本,以解决最近报告的安全问题。我们建议所有用户更新到这些版本之一(如果您不确定选择哪个,请选择 Go 1.13.7)。
- Windows 10 上的 X.509 证书验证绕过
Windows 的一个漏洞允许攻击者在系统根存储区启用时伪造有效的证书链。这些版本包含了对 Go 应用程序的缓解措施,但强烈建议受影响的用户安装 Windows 安全更新以保护其系统。 此问题是 CVE-2020-0601,Go 问题跟踪链接为 golang.org/issue/36834。
- crypto/x509 证书解析和 golang.org/x/crypto/cryptobyte 中的 Panic
在 32 位架构上,对 crypto/x509 或 golang.org/x/crypto/cryptobyte 的 ASN.1 解析函数输入格式错误的数据可能导致 panic。 格式错误的证书可以通过 crypto/tls 连接传递给客户端,或传递给接受客户端证书的服务器。net/http 客户端可能会因 HTTPS 服务器而崩溃,而接受客户端证书的 net/http 服务器将恢复 panic 且不受影响。 感谢 Project Wycheproof 提供了导致发现此问题的测试用例。 此问题是 CVE-2020-7919,Go 问题跟踪链接为 golang.org/issue/36837。 此问题也在 golang.org/x/crypto/cryptobyte 的 v0.0.0-20200124225646-8b5121be2f68 版本中得到修复。
即将发布的 Go 1.14rc1 版本也将包含上述修复。
所有支持平台的下载包可在 https://golang.org/dl 获取。
谢谢,

代表 Go 团队的 Katie 和 Dmitri
更多关于[安全] Golang 1.13.7 和 1.12.16 版本正式发布的实战教程也可以访问 https://www.itying.com/category-94-b0.html
更多关于[安全] Golang 1.13.7 和 1.12.16 版本正式发布的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
Go 1.13.7 和 1.12.16 版本修复了两个关键安全问题,建议立即升级。
1. Windows 10 X.509 证书验证绕过 (CVE-2020-0601) Go 在 Windows 系统上增加了对 CVE-2020-0601 的缓解措施。虽然 Go 应用已受保护,但仍需安装 Windows 安全更新。示例代码展示如何验证证书:
package main
import (
"crypto/tls"
"net/http"
)
func main() {
tr := &http.Transport{
TLSClientConfig: &tls.Config{InsecureSkipVerify: false}, // 必须保持为 false
}
client := &http.Client{Transport: tr}
_, err := client.Get("https://example.com")
if err != nil {
// 处理错误
}
}
2. crypto/x509 解析 panic (CVE-2020-7919) 32位系统上解析恶意ASN.1数据可能导致panic。修复后,解析函数会安全处理异常数据:
package main
import (
"crypto/x509"
"encoding/pem"
"fmt"
)
func parseCertificate(data []byte) {
block, _ := pem.Decode(data)
if block == nil {
return
}
cert, err := x509.ParseCertificate(block.Bytes)
if err != nil {
fmt.Println("安全解析失败:", err)
return
}
// 使用 cert
}
对于 golang.org/x/crypto/cryptobyte,升级到修复版本:
go get -u golang.org/x/crypto/cryptobyte@v0.0.0-20200124225646-8b5121be2f68
升级命令:
# 升级到 Go 1.13.7
go get golang.org/dl/go1.13.7
go1.13.7 download
# 验证版本
go1.13.7 version
这些修复也包含在 Go 1.14rc1 中。所有用户应立即升级到受保护版本。

