流行的node-forge JavaScript库中存在漏洞 – 作者:偶然路过的围观群众

流行的node-forge JavaScript库的一个遗留函数中存在一个安全漏洞(CVE-2020-7720),攻击者可利用该漏洞对应用程序执行原型污染攻击。

超过350万个存储库使用的node-forge实现了各种加密实用程序,TLS协议和用于开发web应用程序的工具。

原型污染是一种严重的漏洞,攻击者可通过在运行时修改应用程序的代码利用该漏洞篡改应用程序的行为。

这通常通过恶意输入来执行,取决于脆弱的组件,可导致一系列攻击,包括拒绝服务甚或远程执行代码。

该漏洞存在于node-forge中的util.setPath()函数,该函数自该库的早期版本开始,在该库开始注重加密之前,就已存在。

根据node-forge的更新日志,当使用不安全的输入时,util.setPath存在一个潜在的原型污染安全漏洞。setPath是一个通用函数,允许开发人员通过传递文本字符串修改对象的属性。

该漏洞最先被报告给安全公司Snyk,在node-forge的维护人员发布补丁后,该公司披露了该漏洞。

Snyk给予该漏洞9.8分的超危评分,而NVD对该漏洞的评分为7.3。Snyk网站上发布的PoC显示,setPath可被用于污染基础对象的__prototype__属性,导致应用程序被修改。图片[1]-流行的node-forge JavaScript库中存在漏洞 – 作者:偶然路过的围观群众-安全小百科

Node-forge更新日志写道,“Forge本身并不使用这些函数。它们可追溯至早些时候,当forge定向提供通用助手功能时。”

Node-forge的维护人员David Lehn表示,“我们从未观察到任何人使用该函数,包括forge自身,更别提利用它了。”

和其他相关的函数一起,setPath被从node-forge最新版本中移除了。

Node-forge的维护人员建议使用其他具有类似属性设置功能的库,例如lodash,但是也警告在这些库中可能有原型污染漏洞。

“lodash set()类似于setPath()(也是setPath的一个很好的受支持的替代)。我想其他人已经编写了类似的object-path-setting代码。当正确使用时,它是非常有用的。”Lehn说道,但是他补充表示,如果没有过滤输入,提供该功能的任何代码都可能含有类似的安全漏洞。

————————————————————————————————————

消息来源Port Swigger;转载请注明出处。

来源:freebuf.com 2020-09-22 14:36:08 by: 偶然路过的围观群众

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论