GitHub安全團隊在npm CLI使用的npm包“tar”和“@npmcli/arborist”中發(fā)現(xiàn)了幾個高危漏洞。
tar包每周平均有2000萬次的下載量,而arborist每周的下載量超過30萬次。
這些漏洞既影響Windows用戶,也影響基于unix的用戶,如果不打補丁,攻擊者就可以利用這些漏洞在安裝不受信任的npm包的系統(tǒng)上任意執(zhí)行代碼。
今年7月至8月間,安全研究人員和漏洞賞金獵人Robert Chen和Philip Papurt在開源Node.js包、tar和@npmcli/arborist中發(fā)現(xiàn)了任意代碼執(zhí)行漏洞。
發(fā)現(xiàn)這些漏洞后,研究人員通過GitHub的漏洞賞金程序私下通知了npm。
在進一步審查研究人員的報告后,GitHub安全團隊在上述軟件包中發(fā)現(xiàn)了一些更嚴重的漏洞,影響基于Windows和unix的系統(tǒng)。
Node.js 包tar仍然是需要在安裝后解壓npm包的安裝程序的核心依賴項。該軟件包還被數(shù)千個其他開源項目使用,因此每周大約有2000萬次下載量。arborist包是npm CLI所依賴的核心依賴項,用于管理node_modules樹。
對于使用npm CLI安裝不受信任的npm包或使用“tar”提取不受信任的包的開發(fā)人員來說,這些ZIP滑位漏洞帶來了一個問題。
默認情況下,npm包以.tar.gz或.tgz文件的形式發(fā)布,它們是類似于zip的歸檔文件,因此需要通過安裝工具解壓。
理想情況下,提取這些歸檔文件的工具應該確保歸檔中的任何惡意路徑不會覆蓋文件系統(tǒng)上的現(xiàn)有文件,特別是敏感文件。
但是,由于下面列出的漏洞,當提取npm包時,可以使用運行npm install命令的用戶的權限覆蓋任意文件:
CVE-2021-32803
CVE-2021-32804
CVE-2021-37701
CVE-2021-37712
CVE-2021-37713
CVE-2021-39134
CVE-2021-39135
GitHub首席安全官Mike Hanley解釋說:“CVE-2021-32804、CVE-2021-37713、CVE-2021-39134和CVE-2021-39135在處理惡意或不受信任的npm包安裝時,會對npm CLI產(chǎn)生安全影響?!?/p>
其中一些問題可能導致任意的代碼執(zhí)行,即使您正在使用—ignore-scripts來阻止包生命周期腳本的處理。
npm敦促用戶修復漏洞
9月8日,GitHub旗下的npm也在推特上敦促開發(fā)者盡快修復這些漏洞:
建議操作:根據(jù)最新發(fā)現(xiàn)的" tar "和" @npmcli/arborist "漏洞,我們建議升級到最新版本的@nodejs 12 / 14 / 16或NPM 6 / 7,并更新您可能對" tar "的任何依賴。
開發(fā)人員應該盡快將tar依賴版本升級到4.4.19、5.0.11或6.1.10,并升級@npmcli/arborist版本2.8.2以修補漏洞。
對于npm CLI, 版本 v6.14.15、v7.21.0或更新版本包含修補程序。此外,根據(jù)GitHub的說法,Node.js版本12、14或16都帶有固定的tar版本,可以安全地升級到這個版本。
開源代碼已經(jīng)成為企業(yè)開發(fā)不可或缺的一部分,但其中軟件包及代碼的安全性卻無法確定。據(jù)Synopsis稱,目前84%的代碼庫至少存在一個安全漏洞。由于開源軟件依賴于第三方代碼鏈,安全團隊通常很難獲得依賴性供應鏈的全部可見性,而在那些不易察覺的地方的任何漏洞都可能導致整個網(wǎng)絡受到破壞。
任何企業(yè)都不想遭到網(wǎng)絡攻擊,但將不安全的代碼引入軟件會大大增加遭到網(wǎng)絡攻擊風險。建議企業(yè)在軟件開發(fā)過程中或進行DevsecOps建設時,進行靜態(tài)代碼安全檢測及開源代碼安全測試,以確保自研代碼及開源代碼安全,同時提高軟件安全性降低遭到網(wǎng)絡攻擊的風險。
參讀鏈接:
www.bleepingcomputer.com/news/securi…