Go 1.15.7 新鮮出爐:修復(fù)安全問題,建議升級
Go 官方剛剛發(fā)布了 Go 1.15.7 和 Go 1.14.14,以解決最近報告的安全問題。建議所有用戶都更新到以下版本之一(如果不確定哪個版本,請選擇 Go 1.15.7)。具體修復(fù)的安全問題如下:
1、cmd/go:使用 cgo 的包可能會在構(gòu)建時導(dǎo)致任意代碼執(zhí)行。
當(dāng) Windows 上使用 cgo 時,go 命令可以在構(gòu)建時執(zhí)行任意代碼。運行 “go get” 或任何其他構(gòu)建代碼的命令時,可能會發(fā)生這種情況。只有構(gòu)建不受信任的代碼(而不執(zhí)行代碼)的用戶才會受到影響。
除 Windows 用戶外,這還可能影響在 PATH 中使用了 “.” 的 Unix 用戶,在模塊外部或禁用模塊模式下運行 “go get”或構(gòu)建命令。
具體 issue:https://github.com/golang/go/issues/43783。
為此,Russ Cox 專門寫了一篇博文介紹:https://blog.golang.org/path-security,闡述了該 bug,如何復(fù)現(xiàn)以及怎么修復(fù)的。(如果打不開,可以看 Go 語言中文網(wǎng)鏡像:https://docs.studygolang.com/blog/path-security ,閱讀原文可以直達(dá))
2、crypto/elliptic:P-224 曲線上的錯誤操作。
在極少數(shù)情況下,P224() 曲線實現(xiàn)可能會產(chǎn)生不正確的輸出,包括從 ScalarMult 返回?zé)o效點。crypto/x509 和golang.org/x/crypto/ocsp(但不包括 crypto/tls)包支持 P-224 ECDSA 密鑰,但不受公共信任的證書頒發(fā)機構(gòu)的支持。沒有其他標(biāo)準(zhǔn)庫或 golang.org/x/crypto 軟件包支持或使用 P-224 曲線。
錯誤的輸出是由 OSS-Fuzz 上運行的橢圓曲線-差分-模糊器項目[1]發(fā)現(xiàn)的,并由 Philippe Antoine(Catena cyber)報告。
具體 issue:https://github.com/golang/go/issues/43786。
Go 一直以來只維護兩個主要版本的更新,對于 cmd/go 的問題,應(yīng)該是之前版本就存在,因此,建議大家升級到最新版本。
在 Go 語言中文網(wǎng)可以下載最新版本:https://studygolang.com/dl。
參考資料
橢圓曲線-差分-模糊器項目: https://github.com/catenacyber/elliptic-curve-differential-fuzzer
推薦閱讀
