知名 Node.js 組件存在代碼注入漏洞
日前,一個被大量下載的 Node.js 組件被發現其含有一個高危的代碼注入漏洞。
該漏洞被追蹤為 CVE-2021-21315,影響了「systeminformation」npm 組件的安全性,該組件每周的下載量約為 80 萬次,自誕生以來,至今已獲得近 3400 萬次下載。
漏洞已被修復
簡單來說,「systeminformation」是一個輕量級的 Node.js 組件,開發者可以在項目中加入該組件,以檢索與 CPU、硬件、電池、網絡、服務和系統進程相關的系統信息。
該組件的開發者表示:"雖然 Node.js 自帶了一些基本的操作系統信息,但我一直想要獲得更多信息。因此我就寫了這個小型的組件。這個組件目前還在開發中。它可以作為一個后端/服務器端的組件來使用的,肯定不會在瀏覽器內工作"。
然而,「systeminformation」中代碼注入漏洞的存在意味著攻擊者可以通過在組件使用的未初始化參數內小心翼翼地注入有效載荷來執行系統命令。
下圖所示的是「systeminformation」在 5.3.1 版本的修復,在調用進一步的命令之前,會對參數進行清理,以檢查它們是否為字符串數據類型,并額外檢查該參數在任何時候是否發生過原型污染。
「systeminformation」的用戶應升級到 5.3.1 及以上版本,以解決其應用程序中的 CVE-2021-21315 漏洞。
變通方法同樣可用
對于那些項目靈活性不高、無法升級到修復版本的開發者,「systeminformation」項目的發布者在公告中也分享了一個可以采用的變通方法。
安全公告中提到:“作為替代升級的一種變通方法,一定要檢查或清理傳遞給 si.inetLatency()、si.inetChecksite()、si.services()、si.processLoad() 的服務參數。只允許字符串,拒絕任何數組。”
這同樣涉及清理參數中的任何違規字符,并正確驗證它們是否屬于字符串數據類型。
本文轉自OSCHINA
本文標題:知名 Node.js 組件存在代碼注入漏洞
本文地址:https://www.oschina.net/news/131199/heavily-used-nodejs-package-has-a-code-injection-vulnerability