
isolated-vm 漏洞可逃出沙箱:跑陌生 JavaScript 單靠 V8 Isolate 未夠
6.x 同 7.x 用家要即查版本,宿主亦要加多層隔離
問題出喺跨界搬資料嗰層
Node.js 沙箱套件 isolated-vm 俾人發現嚴重型別混淆漏洞,GitHub Advisory 將 7.0.0 或之前版本列入受影響範圍,修補版就係 7.0.1 同 6.2.0。iThome 報道,研究團隊已經由沙箱入面令宿主 process 崩潰,再做到控制流程劫持。對會執行用家程式碼、automation script 或 AI agent 生成 JavaScript 嘅服務,呢個更新唔應該等下一輪例行維護先處理。
isolated-vm 會為陌生程式碼開獨立 V8 Isolate,各自有 heap、內建物件同執行環境。今次 V8 本身嘅邊界冇失守,漏洞藏喺 isolated-vm 用 C++ 搬資料過界嗰段程式。ExternalCopy 處理 transferList 時會讀同一項目兩次,第一次驗證係 ArrayBuffer,第二次使用前就冇再核對。惡意 getter 可以喺兩次讀取之間換走個值,最後令宿主將錯誤型別當記憶體物件處理。

圖片:Endor Labs
公開證據去到控制流程劫持
Endor Labs 最少已證明攻擊者可以令宿主 process 崩潰,即係共用同一個 process 嘅工作都可能一齊中斷。團隊再利用記憶體錯誤引導宿主跳去指定位置,展示控制流程劫持;完整 exploit 就冇公開。現有證據支持「有潛在宿主程式碼執行路徑」呢個判斷,但未足以話所有環境都可以穩定、遙距完成完整 RCE。 作業系統、Node.js 版本、架構同服務權限都會影響後續利用難度。
觸發亦有前提。Advisory 指出,沙箱只要收到一個 ivm.Reference,惡意程式碼已可能摸到有問題嘅 ExternalCopy 路徑;如果宿主將來歷不明嘅陣列交畀 transferList,亦可能觸發漏洞。換句話講,裝咗套件唔代表互聯網上任何人都攻擊到,仲要睇產品有冇畀外來程式碼進入沙箱、傳入咩 capability,同該工作最後以咩權限執行。不過好多 script runner 本身就靠 Reference 提供有限功能,所以呢個條件唔算偏門。
先查真正部署緊邊個版本
開發團隊可以喺每個執行服務嘅專案跑 npm ls isolated-vm --all,再用 npm explain isolated-vm 查清楚係直接依賴,抑或由其他 framework 帶入;pnpm 同 Yarn 專案亦應用各自嘅 why 指令核對。唔好淨係望 package.json,lockfile、production container、舊 worker image 同 monorepo 入面嘅獨立服務都要查。6.x 升去 6.2.0,7.x 升去 7.0.1,更新後重新製作部署產物,再確認 runtime 實際載入版本。
官方相容表顯示 Node.js 22 對應 isolated-vm 4.x 或 5.x,但今次 Advisory 將 7.0.0 或之前全部列作受影響,修補清單就得 6.2.0 同 7.0.1。仍然停喺 4.x、5.x 嘅服務,唔好因為「已經係嗰個 Node.js 版本最新嘅相容版」就當佢安全。;實際上可能要連 Node.js 一齊升級,或者直接向維護者確認有冇可用 backport。若系統暫時升唔到,先停用外來程式碼入口會穩陣過繼續裸跑。
同一個 process 嘅 Isolate 擋唔晒後果
isolated-vm 自己嘅保安文件早已提醒,執行不受信任程式碼係高風險工作,亦建議將 Isolate 放喺另一個 Node.js process,遠離主要基建。原因好直接:V8 Isolate 可以分開 JavaScript heap,但大家仍然活喺同一個宿主 process,仲會共用 native binding 同作業系統權限。今次漏洞正正打中呢條接駁位;一旦 native 程式碼記憶體出錯,原本嘅 heap 分隔就救唔返宿主。
修補套件之後,執行陌生程式碼嘅 worker 最好改用獨立 process、低權限帳戶、最少環境變數、受限檔案系統同封鎖非必要外連,再用 container 設資源上限同重啟策略。要處理多租戶或更高風險工作,可以再用獨立 VM 或 microVM 收窄影響範圍。應用層亦要減少傳入 Reference 同其他 capability。今次更新先封住已知入口,多層隔離就負責限制下一個未知漏洞可以去到幾遠。
參考來源
- iThome — Node.js沙箱isolated-vm重大漏洞可突破隔離,沙箱內程式碼可劫持宿主控制流程 — original report
- GHSA-864f-rcv7-6rh4:isolated-vm Security Advisory — 維護者發布嘅正式 Advisory,列明受影響範圍、觸發條件、已證實影響同修補版本。
- isolated-vm 官方 repository — 官方相容表同保安指引,提醒 Isolate 唔會自動令應用安全,亦建議使用獨立 process。
- Forbid user code in ExternalCopy transfer — 官方修補 commit,顯示 ExternalCopy 搬資料期間禁止執行用家 JavaScript。
- GHSA-864f-rcv7-6rh4: Critical Type Confusion Vulnerability in isolated-vm — 發現漏洞嘅研究團隊披露,交代由宿主崩潰到控制流程劫持嘅證據同限制。
本文根據原文及公開資料整理;資料有出入時,以原文及官方資料為準。







