在NPM中發現了三個漏洞,已在NPM 6.13.4中修復

開發者 誰負責項目 從NPM軟件包管理器發布 最近發布 對NPM 6.13.4的更正更新 包含在Node.js交付中,並用於分發JavaScript模塊。

該管理器的新糾正版本是 為了解決三個漏洞而啟動 當安裝攻擊者準備的軟件包時,允許修改或覆蓋任意系統文件。

CVE-2019,16775

這個漏洞 影響6.13.3之前的NPM CLI版本, 你好嗎 它們很容易被任意文件寫入。 程序包可能會創建指向文件夾外部文件的符號鏈接 node_modules 安裝後通過bin字段訪問。

bin package.json字段中正確構造的條目 將允許包編輯器創建指向任意文件的符號鏈接 安裝該軟件包後在用戶系統上運行。 通過安裝腳本仍然可能出現此現象。

CVE-2019,16776

在此漏洞中 6.13.3之前的NPM CLI版本會受到任意文件寫入的影響。 由於您無法阻止通過bin字段訪問預期的node_modules文件夾之外的文件夾。

在bin package.json字段中正確構造的條目將允許程序包編輯器在安裝程序包時修改和訪問用戶系統上的任意文件。 通過安裝腳本仍然可能出現此現象。

bin字段中允許使用帶有“ /../”的路徑

CVE-2019,16777

最後, 6.13.4之前的NPM CLI版本容易受到此漏洞的攻擊 覆蓋任意文件。 由於您不能阻止其他二進製文件覆蓋現有的全局安裝二進製文件。

例如: 如果軟件包是全局安裝的,並創建了服務二進製文件,則任何後續安裝 還會創建服務二進製文件的軟件包 將覆蓋舊的服務二進製文件。 在本地安裝以及通過安裝腳本仍然允許此行為。

您只能替換安裝了可執行文件的目標目錄中的文件(通常是/ usr,/ local,/ bin)。

儘管造成這些漏洞的一個重要因素是,想要利用這些漏洞的人必須讓受害者安裝帶有特殊設計的垃圾箱條目的包裝。 但是,正如我們過去所看到的那樣,這不是不可克服的障礙。

npm,Inc.的安全團隊已在註冊表中掃描此攻擊的示例,並且尚未發現利用此漏洞在註冊表中發布的任何程序包。 那不能保證它沒有被使用過,但這確實意味著它當前不在註冊表中發布的軟件包中使用。

我們將繼續監視並採取措施,以防止不良行為者將來利用此漏洞。 但是,我們無法掃描所有可能的npm軟件包來源(私有註冊表,鏡像,git存儲庫等),因此盡快更新非常重要。

故障排除

作為主要解決方案,建議您更新到新的更正版本,因為NPM v6.13.3中使用的package.json解析庫已更新,該方式可以清理並驗證bin字段中的所有條目以消除斜杠首字母,路由條目以及其他逃脫途徑,使用Node.js中內置的經過測試且高度可靠的路由實用程序。

雖然, 作為解決方法,可以使用以下選項安裝 –忽略腳本,它禁止運行內置驅動程序包。

事不宜遲,如果您想進一步了解這些錯誤,可以在npm博客文章中查看詳細信息。 在下面的鏈接中。

最後,對於那些想要安裝新版本的人,他們可以從官方渠道進行安裝,也可以選擇從源代碼進行編譯。 為此,您可以按照 以下鏈接。


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。