🦊GitLab Blog•最新收集於 21h
vm2 嚴重沙箱逃逸漏洞可導致遠端程式碼執行

#sandbox-escape#nodejs-security#untrusted-codevm2vm2gitlabnode.js
💡AI 生成程式碼需要隔離;這個 vm2 逃逸漏洞可能讓沙箱變成主機級遠端程式碼執行。
⚡ 30-Second TL;DR
有什麼變化
啟用 require.external 時,vm2 3.11.6 及更早版本可被直接利用。
為什麼重要
執行不受信任或 AI 生成 JavaScript 的 AI coding agent、外掛系統、CI runner 與程式碼 playground,若採用脆弱的 vm2 設定,可能面臨曝險。成功逃逸後,攻擊者控制的程式碼可能取得主機應用程式與系統的存取權限。
下一步行動
立即將所有 vm2 部署升級至 3.11.7,接著稽核 NodeVM 設定,停用不必要的 require.external 存取並嚴格限制 require.root 範圍。
誰應關注:Developers & AI Engineers
關鍵要點
- •啟用 require.external 時,vm2 3.11.6 及更早版本可被直接利用。
- •漏洞設定源自 vm2 自身 Quick Examples README 中提供的配置方式。
- •vm2 3.11.7 可阻擋此次特定攻擊,但過於寬鬆的 require.root 設定仍可能造成危險。
- •使用者應限制 require.root、設定 context: 'sandbox',並盡量避免用 vm2 隔離高度不受信任的程式碼。
🧠 深度解析
背景與延伸:來自公開資料,非原文內容。引用 10 個來源。
🔑 增強重點摘要
- •vm2 專案在 2023 年 7 月曾因安全性問題正式宣告終止維護,隨後於 2025 年 10 月以 TypeScript 重寫並重新啟動開發。
- •儘管安全性紀錄脆弱,vm2 在 2026 年初仍維持每週超過一百萬次的下載量,且擁有近 900 個直接依賴項目。
- •2026 年期間爆發了多項關鍵漏洞(如 CVE-2026-22709、CVE-2026-26956 及 CVE-2026-44006),均允許攻擊者繞過沙箱邊界並取得主機層級的遠端程式碼執行權限。
- •CVE-2026-22709 的主要攻擊向量涉及繞過 Promise 回呼函數的清理機制,利用沙箱內與主機全域 Promise 物件之間的差異進行攻擊。
- •資安專家明確指出 vm2 的設計本質不適合作為防禦不受信任程式碼的邊界,建議改用 gVisor 或 Firecracker 等處理器層級或容器層級的隔離技術。
🛠️ 技術深入
- 漏洞利用機制:攻擊者透過操縱 Promise 物件的非同步行為,成功從沙箱環境存取主機全域物件,進而執行任意系統指令。
- 隔離失效原因:vm2 依賴於 Node.js 的 vm 模組,該模組本身並非設計為安全邊界,無法有效防止原型鏈污染或全域物件存取。
- 記憶體隔離限制:由於沙箱與主機共享相同的執行緒與記憶體空間,缺乏硬體層級的記憶體保護,導致沙箱逃逸漏洞頻發。
🔮 前景展望AI analysis grounded in cited sources
vm2 將在 2027 年前被主流 Node.js 生態系統徹底棄用
由於持續且無法根除的沙箱逃逸漏洞,開發者社群正加速轉向更安全的隔離方案,導致該套件的市場佔有率將持續下滑。
基於 vm2 的應用程式將面臨更嚴格的資安合規審查
鑑於其 CVSS 評分常態性達到 10.0,企業資安政策將強制要求移除此類高風險依賴,以符合供應鏈安全標準。
⏳ 時間線
2023-07
vm2 專案因安全性問題正式宣告終止維護。
2025-10
vm2 專案以 TypeScript 重寫並重新啟動開發。
2026-01
vm2 爆發一系列嚴重沙箱逃逸漏洞,包括 CVE-2026-22709。
2026-09
GitLab Threat Research Group 揭露最新嚴重沙箱逃逸漏洞。
📎 來源 (10)
Factual claims are grounded in the sources below. Forward-looking analysis is AI-generated interpretation.
📰
AI 週報
閱讀本週精選 AI 大事摘要 →
👉相關動態
AI 策展新聞聚合。所有內容版權歸原始發布者所有。
原始來源: GitLab Blog ↗
每週 AI 簡報
每週一封,可隨時退訂。