-
-
[分享]GitHub发现“tar”和 npm CLI 7个代码执行漏洞 影响Windows及unix用户
-
发表于: 2021-9-10 10:44 3633
-
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/
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)