首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >内嵌和下划线中的安全问题

内嵌和下划线中的安全问题
EN

Stack Overflow用户
提问于 2022-07-11 07:48:36
回答 1查看 96关注 0票数 1

这是我的第一个问题,我希望我没有想出一些完全愚蠢的事情。

我是JS和Node.js的新手。我可以自己解决一些简单的问题,但是有了这个污染报告,我需要一些建议。

我收到以下报告:

代码语言:javascript
复制
Severity: high
Prototype Pollution - https://github.com/advisories/GHSA-339j-hqgx-qrrx
Depends on vulnerable versions of binary-search-tree
Depends on vulnerable versions of underscore
No fix available
node_modules/nedb

underscore  1.3.2 - 1.12.0
Severity: high
Arbitrary Code Execution in underscore - https://github.com/advisories/GHSA-cf4h-3jhx-xvhq
No fix available
node_modules/underscore
  binary-search-tree  *
  Depends on vulnerable versions of underscore
  node_modules/binary-search-tree```

对于nedb,除了不使用它之外,似乎没有任何解决方案。对于下划线,有一个补丁版本(ver1.12.1),它似乎解决了这个问题。

然而:

  1. 我不知道nedb是否还在工作,我更新了依赖项下划线。
  2. 我不知道如何更新依赖项下划线。

因此,社区对一般使用nedb以及问题1和问题2提供了善意的建议。

也许重要的是要知道:我正在开发的应用程序只在本地运行。我正在使用快递作为服务器,我唯一的着装方式是通过本地主机:

EN

回答 1

Stack Overflow用户

发布于 2022-07-12 00:57:46

虽然你评论说你不再需要帮助,但你的一些问题仍然没有得到解决。为了大家的利益,我会回答他们。

我不知道nedb是否还在工作,我更新了依赖项下划线。

对此的简短回答是“很可能是肯定的”。所有1.x版本的下划线都应该向后兼容--与以前的1.x版本兼容。

诚实的事实是,过去发生了一些重大变化,其中大多数是暂时的。粗略地说,在1.x发行版系列中发生了三种类型的破坏更改:

  • 在大多数情况下,在下一个补丁版本中,出现了一些意外的损坏更改,本质上是bug。这并不是唯一用来强调的。
  • 具有讽刺意味的是,对于那些以某种方式依赖bug的人来说,bug修复往往会破坏一些东西。有时,问题中的错误已经存在了很长时间,这可能导致一些人不愉快地惊讶于修复。这种类型的中断比前一种类型的中断更难以预测,因为它取决于何时发现bug,但它往往只对一小部分用户有问题。这也不是唯一的下划线。
  • 1.7版(2014年8月)包含了与1.6版(2014年2月)相比的几处细微变化,原因是我现在不谈。其中大部分是在1.8版(2015年2月)中恢复的。虽然从1.9开始的升级应该相当顺利,但在1.6-1.8范围内的升级可能会相当复杂,这取决于您的使用情况。

然后,偶尔也会有库将它们的下划线依赖项固定在一个倾斜范围内,例如~1.9.2。在本例中,库将不会升级其依赖项以下划线1.10或更高版本,尽管它可能工作得很好。您可以通过在覆盖字段中使用package.json来处理这种情况。

也许重要的是要知道:我正在开发的应用程序只在本地运行。我正在使用快递作为服务器,我唯一的着装方式是通过本地主机。

虽然我不能评论nedb中的安全问题,但我是下划线1.12.1中的安全补丁的作者。

如果您只在localhost上运行应用程序,并且您是唯一能够访问该应用程序的人,那么可以忽略下划线<1.12.1中的安全问题,而不会有太大的风险。虽然它说的是“任意代码执行”,但仅仅运行受影响的下划线版本并不足以使人容易受到攻击。为了利用漏洞,还需要三种成分:

  • 应用程序或其依赖项之一必须调用_.template,因为这是包含泄漏的函数。
  • 第二个依赖项必须用第二个漏洞“解锁”_.template中的泄漏,例如,将应用程序暴露给原型污染 (原型污染是我所知道的唯一可能解锁,但我不排除存在其他漏洞的可能性)。据我所知,下划线本身从来没有这样的漏洞。
  • 远程攻击者必须能够向您的应用程序发送JSON数据,并让它通过“次要”泄漏。

或者,您可能有一个恶意的第二个依赖项,它会主动利用下划线中的泄漏,但是即使没有任何泄漏,这种依赖项也可以执行任意代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72935255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档