北京时间 2019 年 10 月 18 日凌晨 2 点 49,Go team 宣布发布 Go1.13.2 和 Go1.12.11,Release Note 如下:
我们刚刚发布了 Go 1.13.2 和 Go 1.12.11,以解决最近报告的安全问题。我们建议所有受影响的用户更新到以下版本之一(如果不确定哪个版本,请选择 Go 1.13.2)。
无效的 DSA 公钥可能会导致 dsa.Verify 出现故障。特别是,在精心制作的 X.509 证书链上使用 crypto/x509.Verify 可能会导致 panic,即使证书没有链接到受信任的根。可以通过 crypto/tls 连接将链交付给客户端,或者接受和验证客户端证书的服务器。会通过 HTTPS 服务器使 net/http 客户端崩溃,而接受客户端证书的 net/http 服务器将恢复 panic 并且不受影响。
此外,在 X.509 证书请求,解析 golang.org/x/crypto/openpgp 实体或 golang.org/x/crypto/otr 对话期间,调用 crypto/x509.(*CertificateRequest) CheckSignature 的应用程序可能会崩溃。最后,由于主机密钥格式 错误,golang.org/x/crypto/ssh 客户端可能会崩溃,而如果 PublicKeyCallback 接受格式错误的公钥,或者 IsUserAuthority 接受了格式错误的证书,则服务器可能会崩溃。
issue 是 CVE-2019-17596 和 Go 版本 golang.org/issue/34960 [1] 。
感谢 Daniel Mandragona 发现并报告此问题。我们还要感谢 regilero 先前披露的 CVE-2019-16276。
Go 1.13.2 版本还包含编译器修复程序,可防止在极少数情况下对负 slice 索引的不正确访问。受影响的代码(编译器可以证明索引为零或负数)将在 Go 1.12.11 中引起 panic ,但可能导致在 Go 1.13 和 Go 1.13.1 中进行任意内存读写。这是 Go issue golang.org/issue/34802 [2] 。
结果在 7 点 07 分,又发布了 Go1.13.3 和 Go1.12.12,应该是上个版本有 bug,紧急修复。
因此不建议使用 Go 1.13.2 和 Go 1.12.11,可以到 下载 Go1.13.3 和 Go1.12.12。
文中链接
[1]golang.org/issue/34960:
[2]golang.org/issue/34802: