新聞中心
1月,谷歌工程師修復(fù)了Go語言(Golang)中的一個(gè)遠(yuǎn)程代碼執(zhí)行漏洞。該漏洞CVE編號(hào)為CVE-2021-3115,漏洞主要影響使用go get命令的Windows Go用戶。

我們提供的服務(wù)有:網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì)、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、茅箭ssl等。為成百上千企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的茅箭網(wǎng)站制作公司
非可信目錄路徑查找RCE
該漏洞是由日本安全研究人員RyotaK發(fā)現(xiàn)的,屬于命令注入漏洞。漏洞產(chǎn)生的根本原因是用戶運(yùn)行g(shù)o get命令來提取庫時(shí)編譯過程的工作原理造成的。
在Windows 系統(tǒng)中,用戶或程序運(yùn)行的操作系統(tǒng)shell命令會(huì)引發(fā)shell 在當(dāng)前目錄中搜索與該命令有關(guān)的二進(jìn)制文件或可執(zhí)行文件,然后在系統(tǒng)PATH變量中指定一個(gè)目錄列表。
比如,如果在Windows 命令窗口輸入netstat,Windows就會(huì)在當(dāng)前目錄中搜索netstat.exe、netstat.bat或其他netstat.*可執(zhí)行文件,這些搜索到的文件會(huì)優(yōu)先執(zhí)行。
測試Windows PATH查找
如果當(dāng)前目錄中不存在netstat 相關(guān)的可執(zhí)行文件,那么Windows shell就會(huì)查找netstat 系統(tǒng)工具,該系統(tǒng)工具位于 Windows %PATH% 變量中。
由于與該行為相關(guān)的安全風(fēng)險(xiǎn),Windows PowerShell和Unix shell在執(zhí)行命令時(shí)都已經(jīng)放棄了該默認(rèn)行為,開始優(yōu)先處理非可信當(dāng)前目錄上的%PATH% 變量位置。
也就是說,在PowerShell 中運(yùn)行netstat 會(huì)啟動(dòng)netstat系統(tǒng)工具,而不是本地的netstat.bat,因?yàn)镻oweShell 會(huì)優(yōu)先在%PATH% 目錄中搜索包含該名字的二進(jìn)制文件。
為了保持一致性,Golang 二進(jìn)制文件在Unix 系統(tǒng)中效仿了Unix 規(guī)則,在Windows 系統(tǒng)中效仿了Windows 規(guī)則。也就是說,運(yùn)行下面的命令在Unix系統(tǒng)和Windows 系統(tǒng)中會(huì)產(chǎn)生不同的行為:
- out, err := exec.Command("go", "version").CombinedOutput()
在Windows 系統(tǒng)中,本地的Go二進(jìn)制文件優(yōu)先級(jí)高,而Unix 系統(tǒng)中會(huì)首先搜索$PATH 變量來確認(rèn)其可信位置中是否存在go 二進(jìn)制文件。
這種優(yōu)先本地、非可信目錄的方法也在Go helper和編譯器中實(shí)現(xiàn)了,比如為調(diào)用C語言代碼生成Go包的工具——cgo。
Cgo在Windows系統(tǒng)中編譯C代碼時(shí),Golang可執(zhí)行文件首先會(huì)在非可信的本地目錄中搜索GCC編譯器。Cgo運(yùn)行的go命令會(huì)包含包資源。因此,攻擊者可以利用cgo來啟動(dòng)惡意的gcc.exe程序。
雖然該行為可能是由多個(gè)編譯器、庫等造成的,但是Golang Project決定修復(fù)該漏洞,并已經(jīng)發(fā)布了補(bǔ)丁。
總結(jié)
研究人員RyotaK 稱該漏洞的發(fā)現(xiàn)是受CVE-2020-27955漏洞啟發(fā),CVE-2020-27955是Git LFS中的命令注入漏洞,該漏洞是由于不安全的文件執(zhí)行引發(fā)的Git LFS遠(yuǎn)程代碼執(zhí)行漏洞。
研究人員建議用戶升級(jí)到最新的Go v1.14.14版本來避免該漏洞的利用。
本文翻譯自:https://www.bleepingcomputer.com/news/security/google-fixes-severe-golang-windows-rce-vulnerability/如若轉(zhuǎn)載,請(qǐng)注明原文地址。
網(wǎng)頁標(biāo)題:CVE-2021-3115——GolangWindows版本RCE漏洞
瀏覽路徑:http://fisionsoft.com.cn/article/copsejs.html


咨詢
建站咨詢
