北京時間 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,可以到 https://studygolang.com/dl 下載 Go1.13.3 和 Go1.12.12。
文中連結
[1]golang.org/issue/34960: https://github.com/golang/go/issues/34960
[2]golang.org/issue/34802: https://github.com/golang/go/issues/34802