一个广泛使用的名为 Pac-Resolver 的 JavaScript 编程语言 NPM 包修复了一个高危的远程代码执行漏洞,每当发送 HTTP 请求时,该漏洞可能被利用在 Node.js 应用程序中运行恶意代码。
该漏洞被跟踪为CVE-2021-23406,在 CVSS 漏洞评分系统上的严重性等级为 8.1,并影响 5.0.0 之前的 Pac-Resolver 版本。
根据极牛网JIKENB.COM小编的梳理,代理自动配置 ( PAC ) 文件是一个 JavaScript 函数,用于确定 Web 浏览器请求是直接路由到目标还是转发到给定主机名的 Web 代理服务器。PAC 文件是代理规则在企业环境中的分布方式。
“这个包用于Pac-Proxy-Agent 中的PAC 文件支持,它依次用于Proxy-Agent,然后到处使用它作为 Node 中 HTTP 代理自动检测和配置的标准 go-to 包.js”蒂姆佩里在上个月底发表的一篇文章中说。“它非常受欢迎:Proxy-Agent 无处不在,从 AWS 的 CDK 工具包到 Mailgun SDK 再到 Firebase CLI。”
CVE-2021-23406 与 Pac-Proxy-Agent 不正确沙箱 PAC 文件有关,导致可能滥用不受信任的 PAC 文件完全脱离沙箱并在底层操作上运行任意代码的情况系统。然而,这要求攻击者要么驻留在本地网络上,要么有能力篡改 PAC 文件的内容,要么将其与第二个漏洞链接起来以更改代理配置。
根据极牛网JIKENB.COM小编的梳理,这是对 VM 模块的众所周知的攻击,它之所以有效,是因为 Node 没有完全隔离‘沙箱’的上下文,因为它并没有真正尝试提供严重的隔离,修复方法很简单:使用真正的沙箱而不是VM 内置模块。
红帽在一份独立公告中表示,易受攻击的软件包随其 Kubernetes 高级集群管理产品一起提供,但指出“目前不知道触发受影响组件中漏洞的向量,而且受影响的组件受用户保护身份验证降低了此漏洞的潜在影响。”