hoek原型污染是否容易受到火力包的影响?

时间:2018-05-28 10:26:15

标签: firebase angularfire

这是关于npm包中的原型污染安全漏洞' hoek'这是firebase@3.x.x的子依赖项

Version dependency of firebase on hoek

Hackone Url:https://hackerone.com/reports/310439

Snyk Url:https://snyk.io/test/npm/firebase/3.9.0?severity=high&severity=medium&severity=low

虽然firebase团队已经在firebase@4.x.x包中的pr:https://github.com/firebase/firebase-js-sdk/issues/515中修复了它

我想了解这是否真的是对firebase的安全威胁,因为依赖于firebase@3.xx的人不能直接升级到@ 4.xx,因为它&#39 ;如果他们使用不支持firebase @ 4的angularfire@2.xx,那就是一个突破性的变化。 未决问题:https://github.com/firebase/angularfire/issues/934

根据上述hackone网址,问题的影响是:

  

这表明攻击者可以向服务器上的所有现有对象添加属性。通过替换" toString"可以使用附加属性来更改执行代码流或在每个后续请求中导致错误。或" valueOf"。

     

此漏洞至少可以获得拒绝服务,因为所有库都允许该属性" toString"和" valueOf"被" String"取代。这会破坏express模块​​并强制服务器崩溃或向每个后续请求返回500.

     

可以制作更复杂的有效负载以获得远程代码执行(参见#309391中的PoC)。

通过阅读本文,我了解直接/间接使用hoek软件包的应用程序只有在服务器上运行时才容易受到攻击。

因为使用firebase@3.x.x的使用angularfire@2.x.x的应用程序仅提供给客户端&没有在服务器上运行。

它仍然很脆弱吗?

1 个答案:

答案 0 :(得分:0)

更新!

我刚刚发布了一个npm程序包,以解决无法更新易受攻击程序包的修补版本的人的原型污染问题。您可以安装following package

yarn add no-pollution

只需在您的JavaScript项目的入口点require

require('no-pollution');

针对导致原型污染的易受攻击的方法的扩展,合并,克隆类型进行了测试。但是,目前尚无法解决易受攻击的路径分配方法,但这对于您的Firebase程序包应该足够了。

旧答案

确实,原型污染漏洞在服务器端比在客户端端具有更大的风险。由于可以很容易地利用它来进行拒绝服务(DoS)攻击或远程代码执行(RCE)攻击。

通常,所有业务逻辑都发生在后端,并且仅可用信息显示在前端。但这并不能改变以下事实:有人会污染您对象的原型,并且可以在您的应用程序上执行缩进代码执行。

这在您的应用程序上引起了严重的漏洞,这也将使攻击者可以同时执行DoS或RCE,但是它受到一定程度的难度和客户端可以访问的资源级别的限制。但这并不能改变您的应用程序存在安全漏洞的事实,可以利用该漏洞造成严重破坏。在Snyk

上了解有关此内容的更多信息

重新编写Firebase 4的整个代码库可能是一个困难且耗时的过程,但是除非有角度的火灾决定为Firebase 4提供支持,否则最终将需要做这件事。