每周下载量超过300万的NPM包存在严重漏洞,影响了众多Node.js应用,下载量超过300万次,在GitHub上有28.5万个公共依赖库。软件包开发人员发布了一个错误修复补丁,以解决可能影响许多Node.js应用程序的远程代码执行漏洞(RCE)。开发人员TimPerry本周披露了pac-resolver依赖项中的一个高危漏洞,指出它可能允许本地网络上的攻击者在操作员尝试发送HTTP请求时远程运行Node.js进程中的恶意代码。Note.js是一个众所周知的JavaScript运行时环境,可用于运行基于JavaScript的Web应用程序。该漏洞的CVEID为CVE-2021-23406,与pac-resolver处理PAC文件的方式有关。PAC或Proxy-AutoConfig是指用JavaScript编写的PAC文件,用于分发复杂的代理规则,指示HTTP客户端为给定主机使用哪个代理,这些文件广泛用于企业系统。它们从本地Web服务器和远程服务器分发,通常通过不安全的HTTP而不是HTTPS。尽管PAC标准最初是在1996年作为NetscapeNavigator2.0的一部分引入的,但如今它仍在AmazonWebServices(CDK)、MailgunSDK和GoogleFirebaseCLI中广泛使用。它会影响在Node.js应用程序中依赖5.0.0之前的Pac-Resolver版本的任何开发人员。如果开发人员执行以下三项操作,漏洞可能会影响您的项目:明确使用PAC文件进行代理配置在支持WPAD的系统上,读取和使用Node.js中的操作系统代理配置使用来自不受信任来源的任何其他代理配置(环境变量,配置文件、远程配置端点、命令行参数)在任何一种情况下,攻击者都可以配置恶意PACURL,并在使用代理配置时发送它当发出HTTP请求时,在您的计算机上远程运行任意代码。目前该漏洞已在pac-resolverv5.0.0中得到修复。由于pac-resolver下载量巨大,广泛应用于各种项目中,这意味着很多Node.js应用的开发者可能会受到该漏洞的影响。建议开发人员仔细检查他们的项目。并确保更新到版本5.0.0以修复该问题。
