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