hoek原型污染对于firebase包装是否容易受到污染?

问题描述 投票:9回答:1

这是关于npm包'hoek'中的原型污染安全漏洞,它是[email protected]的子依赖项

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团队已将其修复到此pr:https://github.com/firebase/firebase-js-sdk/issues/515[email protected]

我想了解这是否真的是对firebase的安全威胁,因为依赖于[email protected]的人不能直接升级到@ 4.xx,因为它是一个重大变化,特别是如果他们使用[email protected]它不支持firebase @ 4。公开问题:https://github.com/firebase/angularfire/issues/934

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

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

保证此漏洞至少获得拒绝服务,因为所有库都允许将属性“toString”和“valueOf”替换为“String”。这会破坏express模块​​并强制服务器崩溃或向每个后续请求返回500。

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

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

因此,使用[email protected]的使用[email protected]的应用程序仅提供给客户端而不是在服务器上运行。

它仍然脆弱吗?

firebase angularfire
1个回答
0
投票

更新!!

我刚刚发布了一个npm软件包来修复那些无法更新到易受攻击软件包的修补版本的人的原型污染问题。你可以安装following package

yarn add no-pollution

简单地说require它在你的javascript项目的入口点。

require('no-pollution');

针对导致原型污染的易受攻击的方法的扩展,合并,克隆类型进行测试。但是,目前不适用于易受攻击的路径分配方法,但这对于您的firebase软件包应该足够了。

老答案

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

通常,所有业务逻辑都发生在后端,只有可用信息显示在前端。但这并没有改变这样一个事实,即某人可以污染您的对象的原型并可以在您的应用程序上执行未缩减的代码执行。

这会在您的应用程序中产生严重的漏洞,这也会使攻击者同时执行DoS或RCE,但它受到难度级别和客户端可以访问的资源级别的限制。但这并没有改变您的应用程序存在可用于造成严重损害的安全漏洞这一事实。在Snyk上阅读更多相关信息

为firebase 4重写你的整个代码库可能是一个困难且耗时的过程,但除非角火决定为firebase 4提供支持,否则你最终必须做的事情......

© www.soinside.com 2019 - 2024. All rights reserved.