Npm Netmask SSRF绕过缝隙(CVE-2021-28918)
颁布功夫 2021-03-290x00 缝隙概述
CVE ID | CVE-2021-28918 | 时 间 | 2021-03-29 |
类 型 | 等 级 | 高危 | |
远程利用 | 是 | 影响领域 | Netmask <= v1.1.0 |
PoC/EXP | 已公开 | 在野利用 |
0x01 缝隙详情

Netmask是npm库中的一个软件包,,,,,,,它被成千上万的利用法式用来解析或比力IPv4地址和CIDR块。。。。。。。。该软件包的每周下载量超过300万次,,,,,,,截至目前,,,,,,,netmask已经累计有超过2.38亿的总下载量。。。。。。。。此表,,,,,,,约莫有278,000个GitHub存储库依赖netmask。。。。。。。。
2021年03月28日,,,,,,,netmask被披露存在一个可导致SSRF或RFI的安全缝隙(CVE-2021-28918)。。。。。。。。在解析IP地址时带有前导零的情况下,,,,,,,由于未正确进行验证,,,,,,,网络掩码将会解析为分歧的IP。。。。。。。。该缝隙将导致成千上万的项目容易受到SSRF绕过的攻击,,,,,,,目前该缝隙的PoC已在GitHub上公开。。。。。。。。
IP地址能够用多种体式暗示,,,,,,,蕴含十六进造和整数,,,,,,,但最常见的IPv4地址以十进造体式暗示。。。。。。。。好比,,,,,,,IPv4地址以十进造体式暗示为104.20.59.209,,,,,,,但是八进造体式暗示为0150.0024.0073.0321。。。。。。。。
在Chrome浏览器的地址栏中输入0127.0.0.1/,,,,,,,浏览器会将其视为八进造体式的IP。。。。。。。。现实上,,,,,,,当按下Enter或Return键后,,,,,,,IP会更改为十进造等效值87.0.0.1。。。。。。。。这是由于大无数网络浏览器(如Chrome),,,,,,,会自动赔偿混合体式的IP。。。。。。。。这就是大无数利用法式处置此类闪动其词的IP地址的方式。。。。。。。。

必要把稳的是,,,,,,,127.0.0.1并非公共IP地址,,,,,,,而是一个环回地址,,,,,,,但是,,,,,,,通过闪动其词的暗示将其更改为公共IP地址,,,,,,,从而导致解析为另一台主机。。。。。。。。
但是,,,,,,,对于npm netmask,,,,,,,任何前导零城市被单一地剥离和抛弃。。。。。。。。凭据IETF的原始规范,,,,,,,IPv4地址的部门若是前缀为 0,,,,,,,能够被解析为八进造。。。。。。。。但是netmask忽略了这一点,,,,,,,它始终将IP视为十进造,,,,,,,这意味着在您尝试验证IP属于某个领域时,,,,,,,使用基于八进造的IPv4地址暗示将是谬误的。。。。。。。。
若是攻击者可能影响利用法式解析的IP地址,,,,,,,则该问题可能会导致各类缝隙,,,,,,,从服务器端要求伪造(SSRF)绕过到远程文件蕴含(RFI)。。。。。。。。
攻击者在运行节点服务器来算帐入站要求或查问参数,,,,,,,该要求或查问参数可能是用于进一步衔接的URI,,,,,,,或使用较早的0前缀JavaScript暗示大局,,,,,,,以基于八进造的部门或全数八位字节来造作IP。。。。。。。。这可能导致SSRF,,,,,,,例如,,,,,,,通过传递0177.0.0.01来强造服务器衔接到127.0.0.1(177是十进造127的八进造数)。。。。。。。。一个很好的例子是,,,,,,,一个露出webhooks并通过netmask查抄验证用户URL的系统容易受到SSRF攻击。。。。。。。。

而这个bug也能够被利用来进行远程文件蕴含(RFI),,,,,,,若是攻击者造作一个对netmask来说看起来是私有的IP地址,,,,,,,由于netmask将所有IPv4部门(八位数)转换为十进造体式的方式,,,,,,,被其它组件评估为公共体式。。。。。。。。
各类网络基础架构和安全产品(例如 Web利用防火墙)都依赖于网络掩码来过滤出阻止列表和允许列表中的IP。。。。。。。。这还意味着,,,,,,,若是不加以查抄,,,,,,,则可能会导致此类缺点,,,,,,,从而导致严沉bug。。。。。。。。
2018年,,,,,,,盛行的软件项目 curl中也发现拥有一样类型的缝隙,,,,,,,它将八进造IPv4地址解析为十进造,,,,,,,好比,,,,,,,运杏装 curl -v 0177.0.0.1”curl衔接到177.0.0.1,,,,,,,而不是环回地址127.0.0.1。。。。。。。。此前,,,,,,,Sick Codes、Jackson和Sahler曾在private-ip软件包中发现了一个类似的缝隙(CVSS评分9.8),,,,,,,该软件包每周有17.5万左右的下载量。。。。。。。。
0x02 措置建议
目前此缝隙已经建复,,,,,,,建议实时更新至netmask版本2.0.0。。。。。。。。
下载链接:
https://www.npmjs.com/package/netmask
0x03 参考链接
https://www.npmjs.com/package/netmask
https://github.com/sickcodes/security/blob/master/advisories/SICK-2021-011.md
https://www.bleepingcomputer.com/news/security/critical-netmask-networking-bug-impacts-thousands-of-applications/
https://sick.codes/universal-netmask-npm-package-used-by-270000-projects-vulnerable-to-octal-input-data-server-side-request-forgery-remote-file-inclusion-local-file-inclusion-and-more-cve-2021-28918/
0x04 功夫线
2021-03-28 Sick codes披露缝隙
2021-03-29 VSRC颁布安全公告
0x05 附录
CVSS评分尺度官网:http://www.first.org/cvss/



京公网安备11010802024551号