Go1.16.5 发布
大家好,我是站长 polarisxu。
刚刚 Go Team 发布了 Go 1.16.5 和 1.15.13,这是两个小版本发布。
这些小版本主要包括根据新安全策略(#44918[1])的安全修复。
如果传入非常大的指数,math/big.Rat[2] 的 SetString 和 Unmarshaltext 方法可能导致 panic 或不可恢复的致命错误。这个问题见 #45910[3] 和 CVE-2021-33198。 net/http/httputil[4] 包中的 ReverseProxy 用于转发包含 hop-by-hop 头,有 Connection 的请求。如果 ReverseProxy 的目标本身是反向代理的,则这将让攻击者可以删除任意 header,包括由 ReverseProxy.Director 设置的 header。这个问题见 #46313[5] 和 CVE-2021-33197。 net[6] 包中的 LookupcName,LookUpsRv,Lookupmx,Lookupna 和 Lookupaddr 函数以及 Resolver[7] 类型上的各自方法可以返回从 DNS 检索的任意值,该值不遵循已建立的 RFC 1035 [8] 为域名规则。如果在没有进一步规范的情况下使用这些名称,例如在 HTML 中可能允许注入意外内容。这个问题见 #46241[9] 和 CVE-2021-33195。 在读取包含大量文件的归档时(文件大小无所谓),archive/zip[10] 包中的 NewReader 和 OpenReader 函数可能导致 panic 或不可恢复的致命错误。这个问题见 #46242 [11] 和 CVE-2021-33196。
更多 Bug 修复见:https://github.com/golang/go/issues?q=milestone%3AGo1.16.5+label%3ACherryPickApproved。
如果你项目中使用了以上相关的函数或方法,强烈建议升级。
按官方方式升级:
也可以通过 「Go语言中文网」下载安装包升级:https://studygolang.com/dl。
参考资料
#44918: https://github.com/golang/go/issues/44918
[2]math/big.Rat: https://pkg.go.dev/math/big#Rat
[3]#45910: https://github.com/golang/go/issues/44910
[4]net/http/httputil: https://pkg.go.dev/net/http/httputil
[5]#46313: https://github.com/golang/go/issues/46313
[6]net: https://pkg.go.dev/net
[7]Resolver: https://pkg.go.dev/net#Resolver
[8]RFC 1035 : https://datatracker.ietf.org/doc/html/rfc1035
[9]#46241: https://github.com/golang/go/issues/46241
[10]archive/zip: https://pkg.go.dev/archive/zip
[11]#46242 : https://github.com/golang/go/issues/46242
推荐阅读