IT之家 6 月 3 日消息,安全研究員 Ammar Askar 昨日(6 月 2 日)發(fā)布推文,公開了一個(gè)概念驗(yàn)證(PoC)漏洞,指出 GitHub 瀏覽器版 VS Code 存在安全漏洞,用戶點(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 查詢私有倉(cāng)庫(kù)名稱,并把倉(cāng)庫(kù)列表和被竊取的 Token 顯示在信息框中。原文稱,整個(gè)過程不到 30 秒,用戶只需要打開惡意 Notebook 鏈接。

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