NPM NetMask中的IPv4解析缺陷可能会影响270,000个应用程序

2021-04-01 20:25:25

根据星期一发布的报告,分析了广泛使用的开源组件的安全研究人员发现了遗漏遗漏攻击攻击的安全漏洞。

五个研究人员集团发现了网络掩码中的安全漏洞,这是一个用于惊人的270,000个软件项目的开源库。根据该报告,缺陷将门打开到广泛的恶意攻击,使攻击者能够将恶意代码渡过受保护的网络,或者虹吸敏感数据。

在缺陷使能的攻击中是所谓的服务器端请求伪造(SSRF),以及远程文件包含,本地文件包含等,研究人员称为病例讲述了安全分类帐。努力发现缺陷的程度仍在继续。研究人员已收到缺陷的初步漏洞ID,CVE-2021-28918。

研究人员说,甚至更糟糕,缺陷显得远远超过一个开源模块的延伸,影响了各种开源开发语言。

除了病态代码(@Sickcodes)外,进行调查的研究人员是Victor Viele(@Koroeskohr),Kelly Kaoudis(@Kaoudis),John Jackson(@Johnjhacking)和Nick Sahler(@Tensor_Bodega)。

根据病态代码,在做好工作时发现了漏洞,以修复被称为私有IP的广泛使用的NPM库中的另一个漏洞。该模块也被开源开发人员广泛使用,使应用程序能够通过过滤访问私有IP4地址和其他受限IP4地址范围的尝试来阻止请求伪造攻击,并由ARIN定义。在11月发布的一份报告中,研究人员透露,私有IP模块的工作量不佳,并且易于使用针对顶级应用程序的SSRF攻击绕过。

SSRF攻击允许恶意演员在服务器上滥用功能:从内部资源中读取数据或修改服务器上运行的代码。创建私有IP以帮助应用程序开发人员点点并阻止此类攻击。 SSRF根据OWASP是对Web应用程序中最常见的攻击形式之一。

研究人员正在修复私有IP缺陷转向网络掩码,这是一个广泛使用的包,允许开发人员评估尝试访问应用程序的IP地址是否在给定的IPv4范围内或外部。基于提交到网络掩码的IP地址,模块将返回TRUE或FALST关于已提交的IP地址是否在定义的“块”中。

该模块还具有一系列其他有用功能,例如报告给定块内部的IP。而且,没有其他“依赖性”,网络掩正似乎是解决私有IP问题的完美契合。

因为研究人员很快发现,只有一个问题:网络掩码本身被缺陷。具体而言:模块不正确地评估某些IP地址:验证所谓的“八进制字符串”呈现包含某些八进制字符串的IPv4地址作为整数。

例如,IP4地址0177.0.0.1应由NetMask评估为私有IP地址127.0.0.1,因为八进制字符串“0177”转换为整数“127”。但是,网络掩码将其评估为公共IPv4地址:177.0.0.1,只需剥离前导零并读取八进制字符串的剩余部分作为整数。

并且缺陷既有方式工作。应该评估IP4地址0127.0.0.01作为公共IP地址87.0.0.1,因为八进制字符串“0127”与整数“87”相同。但是,NetMask将地址读为127.0.0.1,可信,localhost地址。将不受信任的公共IP地址视为可信赖的私有IP地址,将门打开到本地和远程文件包含(LFI / RFI)攻击的大门,其中远程经过身份验证或未经身份验证的攻击者可以绕过依赖网络掩码以过滤IP地址块的软件包。

网络掩码是奥利维尔·泊雷迪的创建,这是一个由Netflix的工程总监和公司NextDNS的联合创始人的开发商的创建。该模块首次发布九年前发布,大约5年前突出,版本1.06,已下载超过300万次。

NetMask模块当前每周看到约310万下载,虽然在过去五年中似乎已经停止了网络上的开发,直到10天前发布了2.0.0左右,在发现安全漏洞之后。

使用易受攻击的网克版本的模块的含义严重。根据病态代码,远程攻击者可以使用SSRF攻击从公共Internet上传恶意文件而不设置警报,因为依赖于网络掩码的应用程序将将正确配置的外部IP地址视为内部地址。

同样,攻击者还可以伪装远程IP地址本地地址,从而启用可以允许在目标网络上放置Web Shell或恶意程序的远程文件包含(RFI)攻击。

在3月19日之前将在3月19日开始出现在NetMask中的缺陷的更新,并发布2.0.0版。周一发布了后续更新2.0.1。迄今为止,只有6,641次下载更新的网络掩码模块已完成,这意味着绝大多数使用它的开源项目仍然很脆弱。通过聊天联系,Poitrey建议网络掩码用户升级到最新版本的模块。

但研究人员说了更多即将到来。网络掩码中标识的问题并不是该模块的唯一问题。研究人员先前已经注意到IPv4地址的文本表示没有标准化,导致差异在不同但等效版本的IPv4地址(例如:八进制字符串)的差异是由不同的应用程序和平台解释的。

在网络掩蔽缺陷的情况下,真正的罪魁祸首最终是“在JavaScript中的解析函数的一些意外行为相结合,与那些没有人(使用)的奇数IP符号,”Poitrey告诉安全分类帐。 “解析IPS正确是黑魔法,”他说。 “那些奇怪的符号应该被弃用,所以没有人可以像这样利用它们。”

根据病态代码,缺陷的影响将在未来几周内变得更加明确,因为IPv4解析问题的更多例子是在其他流行的公开解释语言中识别和修补。 “含义是无限的,”他说。