Go1.16.5 發(fā)布
大家好,我是站長 polarisxu。
剛剛 Go Team 發(fā)布了 Go 1.16.5 和 1.15.13,這是兩個小版本發(fā)布。
這些小版本主要包括根據(jù)新安全策略(#44918[1])的安全修復。
如果傳入非常大的指數(shù),math/big.Rat[2] 的 SetString 和 Unmarshaltext 方法可能導致 panic 或不可恢復的致命錯誤。這個問題見 #45910[3] 和 CVE-2021-33198。 net/http/httputil[4] 包中的 ReverseProxy 用于轉(zhuǎn)發(fā)包含 hop-by-hop 頭,有 Connection 的請求。如果 ReverseProxy 的目標本身是反向代理的,則這將讓攻擊者可以刪除任意 header,包括由 ReverseProxy.Director 設置的 header。這個問題見 #46313[5] 和 CVE-2021-33197。 net[6] 包中的 LookupcName,LookUpsRv,Lookupmx,Lookupna 和 Lookupaddr 函數(shù)以及 Resolver[7] 類型上的各自方法可以返回從 DNS 檢索的任意值,該值不遵循已建立的 RFC 1035 [8] 為域名規(guī)則。如果在沒有進一步規(guī)范的情況下使用這些名稱,例如在 HTML 中可能允許注入意外內(nèi)容。這個問題見 #46241[9] 和 CVE-2021-33195。 在讀取包含大量文件的歸檔時(文件大小無所謂),archive/zip[10] 包中的 NewReader 和 OpenReader 函數(shù)可能導致 panic 或不可恢復的致命錯誤。這個問題見 #46242 [11] 和 CVE-2021-33196。
更多 Bug 修復見:https://github.com/golang/go/issues?q=milestone%3AGo1.16.5+label%3ACherryPickApproved。
如果你項目中使用了以上相關的函數(shù)或方法,強烈建議升級。
按官方方式升級:

也可以通過 「Go語言中文網(wǎng)」下載安裝包升級: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
推薦閱讀
