每周数百万下载量!NPM包修复了一个远程代码执行漏洞
共 2007字,需浏览 5分钟
·
2021-09-08 10:45
运行Node.js应用程序的开发者需要检查他们是否在使用pac-resolver JavaScript库,如果最近没有更新,建议及时进行更新。
一个非常流行的NPM包,被称为“pac-resolver”的JavaScript编程语言已得到修复,以解决一个可能影响很多Node.js应用程序的远程代码执行缺陷。
pac-resolver依赖项中的漏洞是由开发人员Tim Perry发现的,他指出,只要操作员尝试发送HTTP请求,本地网络上的攻击者就可以在Node.js进程中远程运行恶意代码。Note.js是流行的JavaScript运行时用于运行JavaScript Web应用程序。
Perry解释说:“这个包在PAC - proxy - agent中用于PAC文件支持,然后在proxy - agent中反过来使用,然后在Node.js中用作HTTP代理自动检测和配置的标准首选包。”
Perry指出,PAC或“代理自动配置”指的是用JavaScript编写的PAC文件,用于分发复杂的代理规则,这些规则指示HTTP客户端对给定主机名使用哪个代理,这些规则在企业系统中被广泛使用。它们分布在本地网络服务器和远程服务器上,通常通过HTTP而不是HTTPs不安全。
这个问题影响范围很广,因为Proxy-Agent被用于Amazon Web Services Cloud Development Kit (CDK)、Mailgun SDK和谷歌的Firebase CLI。
Perry 在博客文章中指出,该软件包每周有300万次下载,并在GitHub上拥有285,000个公共依赖存储库。
该漏洞最近在所有这些包的v5.0.0中被修复,并在上周被披露后被标记为CVE-2021-23406。
这意味着大量使用Node.js应用程序的开发人员可能会受到影响,需要升级到5.0版本。
在Node.js应用程序中,它会影响到任何依赖于5.0版本之前的Pac-Resolver的人。如果开发人员做了以下三种配置中的任何一种,它就会影响这些应用程序:
显式使用PAC文件进行代理配置
在启用WPAD的系统上阅读和使用Node.js中的操作系统代理配置
使用代理配置(env vars、配置文件、远程配置端点、命令行参数),从您不能100%信任的任何其他源代码自由地在计算机上运行代码
佩里表示,在任何一种情况下,只要您使用此代理配置发送HTTP请求,攻击者(通过配置恶意 PAC URL、使用恶意文件拦截 PAC 文件请求或使用 WPAD)都可以在您的计算机上远程运行任意代码。
代码安全要加强重视
管理者应该留出时间来处理漏洞及其他安全相关事项。在添加一个新的代码库时,开发人员通常将功能和许可视为重要的考虑因素,而并不认为安全性同等重要。63%的人表示他们在评估新代码库时总是考虑许可,84.2%的开发人员在评估第三方代码库时不总是考虑安全性。
大量调查显示,几乎所有现代企业应用程序中都不同程度地存在易受攻击的第三方代码库和开源代码。如今企业应用程序中平均包含多达528个开源组件,在每个代码库中平均发现158个漏洞,其中很多是关键漏洞。
因此,当应用程序中的第三代码方库不能保持在最新状态时,对企业来说后果可能很严重。首先,违规风险可能会更高,其次是增加了补丁的复杂性。漏洞时间越长修补就越复杂,打补丁所需的时间就越长,破坏应用程序的风险也就越大。
对于既是直接依赖又是传递依赖的库,修补可能需要长达2.5倍的时间。这同样适用于复杂的漏洞,例如任意代码执行缺陷,与典型问题相比,修复这些漏洞可能需要两倍的时间。远程代码执行和拒绝服务错误也需要更长的时间来解决。
在敏捷开发的今天,越来越多的开源代码及组件被开发人员引入到应用程序中来,代码安全关系着系统安全,影响着网络安全。随着DevsecOps的实践,安全逐渐从一个专有的检测部门贯穿到整个开发流程当中,并且第三方库的不及时更新更为代码安全带来重大隐患。一方面,在静态代码阶段应及时通过静态代码安全检测工具及开源代码安全检测工具对编写的代码进行安全监控,另一方面加强开发人员对安全的重视,制定一定的安全规范在一定程度上能减少问题代码的产生。Wukong(悟空)静态代码检测工具,从源码开始,为您的软件安全保驾护航!
参读链接:
https://www.woocoom.com/b021.html?id=64e6befb5e9041eb8ebe3addd5bd9857
https://www.zdnet.com/article/this-npm-package-with-millions-of-weekly-downloads-has-fixed-a-remote-code-execution-flaw/