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