本篇文章為大家展示了node-forge JavaScript庫中存在的漏洞是怎樣的,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
創(chuàng)新互聯(lián)主營良慶網(wǎng)站建設的網(wǎng)絡公司,主營網(wǎng)站建設方案,app軟件定制開發(fā),良慶h5成都小程序開發(fā)搭建,良慶網(wǎng)站營銷推廣歡迎良慶等地區(qū)企業(yè)咨詢
流行的node-forge JavaScript庫的一個遺留函數(shù)中存在一個安全漏洞(CVE-2020-7720),攻擊者可利用該漏洞對應用程序執(zhí)行原型污染攻擊。
超過350萬個存儲庫使用的node-forge實現(xiàn)了各種加密實用程序,TLS協(xié)議和用于開發(fā)web應用程序的工具。
原型污染是一種嚴重的漏洞,攻擊者可通過在運行時修改應用程序的代碼利用該漏洞篡改應用程序的行為。
這通常通過惡意輸入來執(zhí)行,取決于脆弱的組件,可導致一系列攻擊,包括拒絕服務甚或遠程執(zhí)行代碼。
該漏洞存在于node-forge中的util.setPath()函數(shù),該函數(shù)自該庫的早期版本開始,在該庫開始注重加密之前,就已存在。
根據(jù)node-forge的更新日志,當使用不安全的輸入時,util.setPath存在一個潛在的原型污染安全漏洞。setPath是一個通用函數(shù),允許開發(fā)人員通過傳遞文本字符串修改對象的屬性。
該漏洞最先被報告給安全公司Snyk,在node-forge的維護人員發(fā)布補丁后,該公司披露了該漏洞。
Snyk給予該漏洞9.8分的超危評分,而NVD對該漏洞的評分為7.3。Snyk網(wǎng)站上發(fā)布的PoC顯示,setPath可被用于污染基礎(chǔ)對象的__prototype__屬性,導致應用程序被修改。
Node-forge更新日志寫道,“Forge本身并不使用這些函數(shù)。它們可追溯至早些時候,當forge定向提供通用助手功能時?!?/p>
Node-forge的維護人員David Lehn表示,“我們從未觀察到任何人使用該函數(shù),包括forge自身,更別提利用它了?!?/p>
和其他相關(guān)的函數(shù)一起,setPath被從node-forge最新版本中移除了。
Node-forge的維護人員建議使用其他具有類似屬性設置功能的庫,例如lodash,但是也警告在這些庫中可能有原型污染漏洞。
“l(fā)odash set()類似于setPath()(也是setPath的一個很好的受支持的替代)。我想其他人已經(jīng)編寫了類似的object-path-setting代碼。當正確使用時,它是非常有用的。”Lehn說道,但是他補充表示,如果沒有過濾輸入,提供該功能的任何代碼都可能含有類似的安全漏洞。
上述內(nèi)容就是node-forge JavaScript庫中存在的漏洞是怎樣的,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。