yarn antd 版本更新_在npm,pnpm和yarn中发现任意文件植入覆盖漏洞,请更新最新版本...

5ca238ae851772a07f059673978d9f8c.png

概述

Node.js和npm的安全性正变得越来越重要,我正在考虑恶意攻击者和软件包如何对我们的系统造成损害的可能路径。一个非常强大且经常被忽略的功能是可以通过package.json定义二进制文件,包括它们的名称和使用的文件。可以将它用于(覆盖)某些文件或在我们想要在任何地方植入文件?

发现问题

我的测试证实了我最初的假设,即所有这三个都容易受到文件植入任意文件(覆盖)写入攻击的。

尽管npm和yarn最容易受到攻击,但正如我的测试所总结的那样,pnpm似乎可以阻止许多攻击类型。

在大多数情况下,pnpm似乎无法解析node_modules外部的链接路径。同样,由于pnpm通常使用符号链接来管理依赖关系,因此可以防止符号链接被其他使用它们创建并拥有的软件包覆盖。

问题在于我们可以为文件名称和文件进行符号链接定义任何(有效)路径。

 "bin": {     "../some/path": "../some/other/path" }

PoC

符号链接.ssh / id_rsa

 "keyfile": "/Users/danielruf/.ssh/id_rsa"

这样设置后,恶意应用程序就可以直接访问文件,而无需使用绝对路径和绕过检查所用路径的工具。根据包管理器的安装方式,这也可以作为某种特权绕过。

(覆盖)写入文件

 "webpack": "./test.js"

这样webpack用其他方式覆盖文件。这可用于以操纵或恶意版本静默替换干净的文件。如果尚未创建,则会创建它。

植入文件

 "/Users/danielruf/Desktop/yyy": "./fake-file"

这将在桌面上生成一个新文件,其中包含来自已安装软件包相对路径的代码。

相对路径和简单路径遍历也可以用来实现相同目的:

 "../../../yyy": "./fake-file"

安全修复方案

路径不应在node_modules文件夹之外被解析,以防止大多数此类方法,例如pnpm已经这样做。

而且,不应允许它覆盖由其他依赖项创建的符号链接。在某些情况下,这是可以避免的,但在大多数情况下,程序包管理器允许这样做。用户也不会获得默认情况下已安装文件的信息,因此不清楚后面发生的事情。

关于文件系统访问的限制也应该防止其他方面的攻击。但这是一个普遍的问题,必须在Node.js中解决(表示已经从根开始尝试解决)。

更新

更新到npm(v6.13.4)和yarn(v1.12.1)的最新可用版本,这些版本解决了这些问题。#npm##pnpm##yarn#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值