每週下載量達 3 萬次的 pac-resolver NPM 軟體包中存在漏洞

pac-resolver NPM 軟體包每週下載量超過3 萬次,該軟體包存在一個漏洞(CVE-2021-23406),當從Node.js 專案發送HTTP 請求時,該漏洞允許其JavaScript 程式碼在應用程式的上下文中執行。支援代理伺服器自動配置功能。

pac-resolver 套件解析包含自動代理程式設定腳本的 PAC 檔案。 PAC 檔案包含帶有 FindProxyForURL 函數的常規 JavaScript 程式碼,該函數定義根據主機和要求的 URL 選擇代理程式的邏輯。這個漏洞的本質是,為了在 pac-resolver 中執行這段 JavaScript 程式碼,使用了 Node.js 中提供的 VM API,該 API 允許您在 V8 引擎的不同上下文中執行 JavaScript 程式碼。

指定的 API 在文件中明確標記為不用於運行不受信任的程式碼,因為它不提供正在運行的程式碼的完全隔離並允許存取原始上下文。該問題已在 pac-resolver 5.0.0 中解決,該版本已改為使用 vm2 庫,該庫提供了適合運行不受信任程式碼的更高級別的隔離。

每週下載量達 3 萬次的 pac-resolver NPM 軟體包中存在漏洞

當使用 pac-resolver 的易受攻擊版本時,攻擊者透過傳輸專門設計的 PAC 檔案可以在使用 Node.js 的專案程式碼上下文中實現其 JavaScript 程式碼的執行,如果該專案使用具有依賴項的程式庫與pac解析器。有問題的庫中最受歡迎的是 Proxy-Agent,它被列為 360 個項目的依賴項,包括 urllib、aws-cdk、mailgun.js 和 firebase-tools,每週下載總量超過 XNUMX 萬次。

如果依賴 pac-resolver 的應用程式會載入支援 WPAD 代理自動設定協定的系統提供的 PAC 文件,則有權存取本機網路的攻擊者可以透過 DHCP 使用代理設定分發來插入惡意 PAC 文件。

來源: opennet.ru

添加評論