Node.js 18.x < 18.19.1/20.x < 20.11.1/21.x < 21.6.2 多個弱點 (2024 年 2 月 14 日星期三安全性版本)。

high Nessus Plugin ID 190856

概要

Node.js - JavaScript 執行階段環境受到多個弱點影響。

說明

遠端主機上安裝的 Node.js 版本早於 18.19.1、20.11.1 或 21.6.2。因此,它受到 2024 年 2 月 14 日星期三安全性版本公告中提及的多個弱點影響。

- 在 Linux 上,若無權限的使用者在以提升的權限執行處理程序時已設定特定環境變數,Node.js 就會忽略這些變數,唯一的例外狀況是 CAP_NET_BIND_SERVICE。由於此例外狀況的實作中有一個錯誤,因此即使已設定某些其他功能,Node.js 仍會以不正確的方式套用此例外狀況。無權限的使用者可藉此插入繼承處理程序提升權限的程式碼。影響:感謝 Tobias Nieen 報告並修正此弱點。(CVE-2024-21892)

- Node.js HTTP 伺服器中存在一個弱點,攻擊者可藉此傳送具有區塊編碼的特製 HTTP 要求,進而導致資源耗盡和拒絕服務 (DoS)。伺服器會利用區塊延伸位元組缺少限制的弱點,從單一連線讀取無限數量的位元組。此問題可造成 CPU 和網路頻寬耗盡,進而繞過標准防護措施,如逾時和內文大小限制。影響:感謝 Bartek Nowotarski 報告此弱點,並感謝 Paolo Insogna 修正此弱點。(CVE-2024-22019)

- 權限模型可在使用者提供的任何路徑上呼叫 path.resolve(),藉此保護自己免受路徑遊走攻擊。如果要將路徑視為 Buffer,則實作會使用 Buffer.from() 從 path.resolve() 的結果中取得 Buffer。應用程式可以透過「猴子式修補法」緩衝區內部項目 (即 Buffer.prototype.utf8Write) 修改 path.resolve() 的結果,進而造成路徑遊走弱點。影響:請注意,在此 CVE 發布時,此權限模型為 Node.js 的實驗性功能。感謝 Tobias Nieen 報告並修正此弱點。(CVE-2024-21896)

- 如果 setuid() 已在呼叫 setuid() 之前初始化,則 setuid() 不會影響 libuv 的內部 io_uring 作業。
即使處理程序可能已透過 setuid() 呼叫中斷此類權限,處理程序仍可進行有權限的作業。影響:感謝 valette 報告此弱點,同時感謝 Tobias Nieen 修正此弱點。(CVE-2024-22017)

- crypto 程式庫的 privateDecrypt() API 中存有一個弱點,會在 PKCS#1 v1.5 填補錯誤處理期間造成隱密計時旁路。此弱點會揭露有效和無效加密文字在解密時的顯著時間差。這會造成嚴重威脅,因為攻擊者可從遠端惡意利用此弱點,將擷取的 RSA 加密文字解密或偽造簽章,特別是在涉及 API 端點處理 Json Web 加密訊息的情況下。影響:感謝 hkario 報告此弱點,同時感謝 Michael Dawson 修正此弱點。(CVE-2023-46809)

- Node.js 會依賴多個內建公用程式函式來標準化提供給 node: fs 函式的路徑,其可由使用者定義的實作過度覆寫,進而導致透過路徑遊走攻擊繞過檔案系統權限模型。影響:請注意,在此 CVE 發布時,此權限模型為 Node.js 的實驗性功能。感謝 xion 報告此弱點,同時感謝 Rafael Gonzaga 修正此弱點。(CVE-2024-21891)

- Node.js 權限模型未在文件中闡明萬用字元只能作為檔案路徑的最後一個字元使用。例如:--allow-fs-read=/home/node/.ssh/*.pub 將忽略 pub 並提供 .ssh/ 之後所有項目的存取權。影響:請注意,在此 CVE 發布時,此權限模型為 Node.js 的實驗性功能。感謝 Tobias Nieen 報告此弱點,同時感謝 Rafael Gonzaga 修正此弱點。(CVE-2024-21890)

請注意,Nessus 並未測試這些問題,而是僅依據應用程式自我報告的版本號碼作出判斷。

解決方案

升級至 Node.js 18.19.1 / 20.11.1 / 21.6.2 版本或更新版本。

另請參閱

http://www.nessus.org/u?313add11

Plugin 詳細資訊

嚴重性: High

ID: 190856

檔案名稱: nodejs_2024_feb.nasl

版本: 1.2

類型: local

代理程式: windows, macosx, unix

系列: Misc.

已發布: 2024/2/21

已更新: 2024/4/5

組態: 啟用徹底檢查

支援的感應器: Nessus Agent, Nessus

風險資訊

VPR

風險因素: Critical

分數: 9.0

CVSS v2

風險因素: Medium

基本分數: 5

時間分數: 3.7

媒介: CVSS2#AV:N/AC:L/Au:N/C:N/I:N/A:P

CVSS 評分資料來源: CVE-2024-22019

CVSS v3

風險因素: High

基本分數: 7.9

時間分數: 6.9

媒介: CVSS:3.0/AV:L/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N

時間媒介: CVSS:3.0/E:U/RL:O/RC:C

CVSS 評分資料來源: CVE-2024-21896

弱點資訊

CPE: cpe:/a:nodejs:node.js

必要的 KB 項目: installed_sw/Node.js

可輕鬆利用: No known exploits are available

修補程式發佈日期: 2024/2/14

弱點發布日期: 2024/2/14

參考資訊

CVE: CVE-2023-46809, CVE-2024-21890, CVE-2024-21891, CVE-2024-21892, CVE-2024-21896, CVE-2024-22017, CVE-2024-22019

IAVB: 2024-B-0016-S