GitHub發現“tar”和 npm CLI 7個程式碼執行漏洞 影響Windows及unix使用者

zktq2021發表於2021-09-10

GitHub安全團隊在npm CLI使用的npm包“tar”和“@npmcli/arborist”中發現了幾個高危漏洞。

tar包每週平均有2000萬次的下載量,而arborist每週的下載量超過30萬次。

這些漏洞既影響Windows使用者,也影響基於unix的使用者,如果不打補丁,攻擊者就可以利用這些漏洞在安裝不受信任的npm包的系統上任意執行程式碼。

今年7月至8月間,安全研究人員和漏洞賞金計劃成員Robert Chen和Philip Papurt在開源Node.js包、tar和@npmcli/arborist中發現了任意程式碼執行漏洞。

發現這些漏洞後,研究人員透過GitHub的漏洞賞金程式私下通知了npm。

在進一步審查研究人員的報告後,GitHub安全團隊在上述軟體包中發現了一些更嚴重的漏洞,影響基於Windows和unix的系統。

Node.js 包tar仍然是需要在安裝後解壓npm包的安裝程式的核心依賴項。該軟體包還被數千個其他開源專案使用,因此每週大約有2000萬次下載量。arborist包是npm CLI所依賴的核心依賴項,用於管理node_modules樹。

對於使用npm CLI安裝不受信任的npm包或使用“tar”提取不受信任的包的開發人員來說,這些ZIP滑位漏洞帶來了一個問題。

預設情況下,npm包以.tar.gz或.tgz檔案的形式釋出,它們是類似於zip的歸檔檔案,因此需要透過安裝工具解壓。

理想情況下,提取這些歸檔檔案的工具應該確保歸檔中的任何惡意路徑不會覆蓋檔案系統上的現有檔案,特別是敏感檔案。

但是,由於下面列出的漏洞,當提取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產生安全影響。”

其中一些問題可能導致任意的程式碼執行,即使您正在使用—ignore-scripts來阻止包生命週期指令碼的處理。


npm敦促使用者修復漏洞


9月8日,GitHub旗下的npm也在推特上敦促開發者儘快修復這些漏洞:

建議操作:根據最新發現的' tar '和' @npmcli/arborist '漏洞,我們建議升級到最新版本的@nodejs 12 / 14 / 16或NPM 6 / 7,並更新您可能對' tar '的任何依賴。

開發人員應該儘快將tar依賴版本升級到4.4.19、5.0.11或6.1.10,並升級@npmcli/arborist版本2.8.2以修補漏洞。

對於npm CLI, 版本 v6.14.15、v7.21.0或更新版本包含修補程式。此外,根據GitHub的說法,Node.js版本12、14或16都帶有固定的tar版本,可以安全地升級到這個版本。

開原始碼已經成為企業開發不可或缺的一部分,但其中軟體包及程式碼的安全性卻無法確定。據Synopsis稱,目前84%的程式碼庫至少存在一個安全漏洞。由於開源軟體依賴於第三方程式碼鏈,安全團隊通常很難獲得依賴性供應鏈的全部可見性,而在那些不易察覺的地方的任何漏洞都可能導致整個網路受到破壞。

任何企業都不想遭到網路攻擊,但將不安全的程式碼引入軟體會大大增加遭到網路攻擊風險。建議企業在軟體開發過程中或進行DevsecOps建設時,進行 靜態程式碼安全檢測及開原始碼安全測試,以確保自研程式碼及開原始碼安全,同時提高軟體安全性降低遭到網路攻擊的風險。


參讀連結:

https://www.bleepingcomputer.com/news/security/github-finds-7-code-execution-vulnerabilities-in-tar-and-npm-cli/


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70000012/viewspace-2791377/,如需轉載,請註明出處,否則將追究法律責任。

相關文章