IT之家 6 月 3 日消息,安全研究員 Ammar Askar 昨日(6 月 2 日)發(fā)布推文,公開(kāi)了一個(gè)概念驗(yàn)證(PoC)漏洞,指出 GitHub 瀏覽器版 VS Code 存在安全漏洞,用戶(hù)點(diǎn)擊鏈接后,GitHub OAuth tokens 可能被黑客掌握。
IT之家援引博文介紹,該漏洞受存在于 GitHub 瀏覽器版 VS Code(github.dev)的 Webview 機(jī)制中。Webview 本應(yīng)用沙箱隔離 Jupyter Notebook、Markdown 預(yù)覽等內(nèi)容,但為了讓快捷鍵在其中繼續(xù)生效,VS Code 會(huì)把按鍵事件轉(zhuǎn)發(fā)到主編輯器窗口。

Askar 發(fā)現(xiàn),頁(yè)面內(nèi) JavaScript 可以偽造這些按鍵事件,并被主窗口當(dāng)作真實(shí)輸入處理。
PoC 倉(cāng)庫(kù)包含一個(gè) Jupyter Notebook 和本地工作區(qū)擴(kuò)展。Notebook 中的腳本會(huì)等待 VS Code 彈出安裝擴(kuò)展提示,再模擬 Ctrl+Shift+A 接受安裝。

本地?cái)U(kuò)展隨后利用 VS Code 對(duì)工作區(qū)擴(kuò)展的隱式信任,注冊(cè)自定義快捷鍵,并觸發(fā)第二個(gè)擴(kuò)展靜默安裝。

第二個(gè)擴(kuò)展會(huì)從編輯器會(huì)話中讀取 GitHub OAuth Token,調(diào)用 GitHub API 查詢(xún)私有倉(cāng)庫(kù)名稱(chēng),并把倉(cāng)庫(kù)列表和被竊取的 Token 顯示在信息框中。原文稱(chēng),整個(gè)過(guò)程不到 30 秒,用戶(hù)只需要打開(kāi)惡意 Notebook 鏈接。

該問(wèn)題也影響桌面版 VS Code,但門(mén)檻更高,攻擊者需要讓目標(biāo)克隆倉(cāng)庫(kù)并打開(kāi) Notebook。原文還稱(chēng),如果桌面 VS Code Webview 中存在其他 XSS,同類(lèi)技術(shù)可能進(jìn)一步帶來(lái) RCE 風(fēng)險(xiǎn)。
Askar 沒(méi)有聯(lián)系微軟 MSRC 協(xié)調(diào)披露。他稱(chēng)此前報(bào)告 VS Code 漏洞時(shí),微軟靜默修復(fù)問(wèn)題,卻未給出致謝,并把問(wèn)題歸類(lèi)為沒(méi)有安全影響。
原文還提到,其他研究員報(bào)告過(guò) VS Code 內(nèi)置 Git 擴(kuò)展命令注入、Jupyter Notebook 擴(kuò)展 XSS,也曾被判定不符合獎(jiǎng)勵(lì)范圍。
緩解方式方面,Askar 建議清除瀏覽器中 github.dev 的本地站點(diǎn)數(shù)據(jù)。這樣再次打開(kāi) github.dev 時(shí),用戶(hù)會(huì)先看到登錄提示,從而有機(jī)會(huì)退出可疑鏈接。
若用戶(hù)曾運(yùn)行該 PoC,還需要從 github.dev 環(huán)境中卸載對(duì)應(yīng)擴(kuò)展。微軟發(fā)稿時(shí)尚未就此次披露發(fā)布公開(kāi)聲明。
參考
廣告聲明:文內(nèi)含有的對(duì)外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時(shí)間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。