NPM包中报告的严重安全漏洞,每周下载量达数百万次
一个被广泛使用的用于JavaScript编程语言的NPM包“Pac-Resolver”修复了一个严重的远程代码执行漏洞,该漏洞可能被滥用,在发送HTTP请求时在Node.js应用程序中运行恶意代码。
该漏洞被跟踪为CVE-2021-23406,在CVSS漏洞评分系统上的严重级别为8.1,并且影响5.0.0之前的Pac-Resolver版本。
代理自动配置( PAC )文件是一个JavaScript函数,用于确定Web浏览器请求是直接路由到目标还是转发到给定主机名的Web代理服务器。PAC文件是代理规则在企业环境中的分布方式。
Tim Perry在上月底发表的一篇文章中说:“这个包在PAC - proxy - agent中用于PAC文件支持,然后在proxy - agent中反过来使用,然后在Node.js中作为HTTP代理自动检测和配置的标准首选包。”“它非常流行:从AWS的CDK工具包到Mailgun SDK再到Firebase CLI, Proxy-Agent被广泛使用。”
CVE-2021-23406涉及到PAC - proxy - agent无法正确地将PAC文件沙箱化,导致一个不受信任的PAC文件可能被滥用,从而完全打破沙箱,并在底层操作系统上运行任意代码。然而,这要求攻击者要么驻留在本地网络上,具有篡改PAC文件内容的能力,要么使用第二个漏洞将其链接起来,以改变代理配置。
Perry说:“这是针对VM模块的一种众所周知的攻击,之所以有效,是因为Node并没有完全隔离‘沙箱’的上下文,因为它并没有真正尝试提供严格的隔离。”解决方法很简单:使用一个真正的沙箱,而不是VM内置的模块。”
Red Hat在一份独立公告中表示,Kubernetes的高级集群管理产品中附带了该漏洞包,但指出“目前还不知道触发受影响组件漏洞的载体,此外,受影响的组件受到用户身份验证的保护,降低了此漏洞的潜在影响。”
开发人员及其团队及客户群已成为恶意软件的关键切入点,针对开发人员的最常见的攻击媒介之一是利用公共软件包存储库。因此在使用这些托管包时,对框架及代码及时进行安全检测十分重要。
大量调查显示,几乎所有现代企业应用程序中都不同程度地存在易受攻击的第三方代码库和开源代码。如今企业应用程序中平均包含多达528个开源组件,在每个代码库中平均发现158个漏洞,其中很多是关键漏洞。
因此,当应用程序中的第三代码方库不能保持在最新状态时,对企业来说后果可能很严重。首先,违规风险可能会更高,其次是增加了补丁的复杂性。漏洞时间越长修补就越复杂,打补丁所需的时间就越长,破坏应用程序的风险也就越大。
随着DevsecOps实践,安全逐渐从一个专有的检测部门贯穿到整个开发流程当中,代码安全不仅由安全团队负责,开发人员更有责任确保代码质量和安全问题。安全可控的静态代码检测工具可以帮助开发人员减少30%到70%的安全漏洞,同时可以检测编码规范问题及缺陷,为开发人员查看修改代码问题节省大量时间成本提高开发效率。Wukong(悟空)静态代码检测工具,从源码开始,为您的软件安全保驾护航!
参读链接:
https://www.woocoom.com/b021.html?id=9c7ee25f6f6d4b7d81bad6a045573a1a
https://thehackernews.com/2021/09/critical-bug-reported-in-npm-package.html