Go Team
發(fā)布了 Go 1.15.1
和 Go 1.14.8
,以解決最近報告的安全問題。建議所有受影響的用戶更新到以下版本之一(如果不確定哪個版本,請選擇 Go 1.15.1)。
如果處理程序未明確設(shè)置 Content-Type
響應(yīng)頭,則 net/http/cgi
和 net/http/fcgi
包將默認(rèn)設(shè)置為 "text/html",如果攻擊者可以控制響應(yīng)的內(nèi)容,則可能會導(dǎo)致跨站點(diǎn)腳本漏洞。
現(xiàn)在修改改為根據(jù)第一次 Write 的內(nèi)容通過 http.DetectContentType
來設(shè)置Content-Type
響應(yīng)頭,這與 net/http
包的行為一致。
盡管這可以保護(hù)某些驗(yàn)證上傳文件內(nèi)容的應(yīng)用程序,但未在攻擊者控制的任何文件上明確設(shè)置 Content-Type
響應(yīng)頭是不安全的,應(yīng)避免出現(xiàn)。也就是說,你應(yīng)該總是明確設(shè)置 Content-Type
響應(yīng)頭。
RedTeam Pentesting GmbH 報告此問題。此問題為CVE-2020-24553,相應(yīng)的 issue 見:github.com/golang/go/issues/40928