vm2 Node.js 函式庫中揭露了十幾個嚴重的安全漏洞,惡意行為者可以利用這些漏洞突破沙箱,並在易受攻擊的系統上執行任意程式碼。vm2 是一個開源函式庫,它透過攔截和代理 JavaScript 對象,防止沙箱中的程式碼存取主機環境,從而在安全的沙箱中執行不受信任的 JavaScript 程式碼。
安全漏洞如下:
✔ CVE-2026-24118(CVSS評分:9.8)- 此漏洞允許攻擊者透過「__lookupGetter__」逃逸沙箱,並在底層主機上執行任意程式碼。 (影響版本 <= 3.10.4,已在 3.11.0 中修復)
✔ CVE-2026-24120(CVSS評分:9.8)-此漏洞可繞過CVE-2023-37466(CVSS評分:9.8)的補丁,攻擊者可能利用Promise物件的species屬性繞過沙箱,並在底層主機上執行任意命令。 (影響版本<= 3.10.3,已在3.10.5中修復)
✔ CVE-2026-24781(CVSS評分:9.8)-此漏洞允許攻擊者透過「inspect」函數逃逸沙箱,並在底層主機上執行任意程式碼。 (影響版本 <= 3.10.3,已在 3.11.0 中修復)
✔ CVE-2026-26332(CVSS評分:9.8)- 此漏洞允許攻擊者透過「SuppressedError」逃逸沙箱,並在底層主機上執行任意程式碼。(影響版本 <= 3.10.4,已在 3.11.0 中修復)
✔ CVE-2026-26956(CVSS評分:9.8)- 此漏洞利用了保護機制的失效,允許攻擊者透過觸發符號到字串強制轉換產生的TypeError來逃逸沙箱並執行任意程式碼。 (影響版本3.10.4,已在Node.js 25.6.1上確認,已在3.10.5中修復)
✔ CVE-2026-43997(CVSS評分:10.0)-此漏洞為程式碼注入漏洞,攻擊者可利用此漏洞取得宿主物件並逃逸沙箱,從而執行任意程式碼。(影響版本 <= 3.10.5,已在 3.11.0 中修復)
✔ CVE-2026-43999(CVSS評分:9.9)-此漏洞允許繞過NodeVM的內建允許列表,使攻擊者能夠載入諸如child_process之類的被排除在外的內建函數,從而實現遠端程式碼執行。(影響版本3.10.5,已在3.11.0中修復)
✔ CVE-2026-44005(CVSS評分:10.0)-此漏洞允許攻擊者控制的JavaScript程式碼逃逸沙箱,從而污染原型。(影響版本3.9.6-3.10.5,已在3.11.0中修復)
✔ CVE-2026-44006(CVSS評分:10.0)- 透過「BaseHandler.getPrototypeOf」注入程式碼的漏洞,可使攻擊者逃逸沙箱並執行遠端程式碼。(影響版本 <= 3.10.5,已在 3.11.0 中修復)
✔ CVE-2026-44007(CVSS評分:9.1)- 存取控制不當漏洞,允許攻擊者逃逸沙箱並在底層主機上執行任意作業系統命令。(影響版本 <= 3.11.0,已在 3.11.1 中修復)
✔ CVE-2026-44008(CVSS評分:9.8)- 此漏洞允許攻擊者透過「neutralizeArraySpeciesBatch()」函數逃逸沙箱,並允許攻擊者在底層主機上執行任意命令。(影響版本 <= 3.11.1,已在 3.11.2 中修復)
✔ CVE-2026-44009(CVSS評分:9.8)- 此漏洞允許攻擊者透過空proto異常逃逸沙箱,並允許攻擊者在底層主機上執行任意命令。(影響版本 <= 3.11.1,已在3.11.2中修復)
此次揭露發生在 vm2 維護者 Patrik Simek 發布修補程式幾個月之後,該修補程式針對的是另一個嚴重的沙箱逃逸漏洞(CVE-2026-22709,CVSS 評分:9.8),該漏洞可能導致在底層主機系統上執行任意程式碼。
新發現的一系列沙箱逃逸案例表明,在基於 JavaScript 的沙箱環境中安全隔離不受信任的程式碼是一項挑戰。 Simek 先前也承認,未來很可能會發現新的繞過方法。建議 vm2 使用者更新至最新版本 ( 3.11.2 ) 以獲得最佳保護。
資料來源:https://thehackernews.com/2026/05/vm2-nodejs-library-vulnerabilities.html