您好,登录后才能下订单哦!
本篇文章为大家展示了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__属性,导致应用程序被修改。
Node-forge更新日志写道,“Forge本身并不使用这些函数。它们可追溯至早些时候,当forge定向提供通用助手功能时。”
Node-forge的维护人员David Lehn表示,“我们从未观察到任何人使用该函数,包括forge自身,更别提利用它了。”
和其他相关的函数一起,setPath被从node-forge最新版本中移除了。
Node-forge的维护人员建议使用其他具有类似属性设置功能的库,例如lodash,但是也警告在这些库中可能有原型污染漏洞。
“lodash set()类似于setPath()(也是setPath的一个很好的受支持的替代)。我想其他人已经编写了类似的object-path-setting代码。当正确使用时,它是非常有用的。”Lehn说道,但是他补充表示,如果没有过滤输入,提供该功能的任何代码都可能含有类似的安全漏洞。
上述内容就是node-forge JavaScript库中存在的漏洞是怎样的,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。