vm2 Node.js库曝严重沙箱逃逸漏洞(CVE-2026-22709)可导致任意代码执行

枫少@KillBoy
枫少@KillBoy
管理员
219
文章
0
粉丝
信息安全来源:FreeBuf-散落漫天27353字数 576阅读1分55秒阅读模式
AI智能摘要
一次异步函数调用,竟能让整个安全沙箱土崩瓦解。CVE-2026-22709这个评分9.8的高危漏洞,正在威胁着数百万使用vm2库的Node.js应用。最新研究发现,攻击者只需巧妙利用Promise处理机制的设计缺陷,就能突破沙箱边界,在主机系统上执行任意代码。这已是vm2近两年曝出的第8个沙箱逃逸漏洞,而维护者坦言未来可能还会发现新的绕过方法。开发者们是时候重新审视依赖选择,是升级到修复版本,还是转向隔离性更强的替代方案?
— AI 生成的文章内容摘要

vm2 Node.js库曝严重沙箱逃逸漏洞(CVE-2026-22709)可导致任意代码执行

流行的vm2 Node.js库近日披露一个高危沙箱逃逸漏洞,攻击者成功利用该漏洞可在底层操作系统上执行任意代码。该漏洞编号为CVE-2026-22709,CVSS评分为9.8分(满分10分)。

漏洞技术细节

vm2维护者Patrik Simek表示:"在vm2 3.10.0版本中,Promise.prototype.then和Promise.prototype.catch回调的净化处理可被绕过,导致攻击者能够逃逸沙箱并执行任意代码。"vm2是一个Node.js库,通过拦截和代理JavaScript对象,在安全的沙箱环境中运行不受信任的代码,防止沙箱代码访问主机环境。

新发现的漏洞源于该库对Promise处理程序的不当净化处理,形成了逃逸向量,最终导致在沙箱边界外执行任意代码。Endor Labs研究人员Peyton Kennedy和Cris Staicu指出:"关键问题在于JavaScript中的异步函数返回的是globalPromise对象而非localPromise对象。由于globalPromise.prototype.thenglobalPromise.prototype.catch未像localPromise那样被正确净化处理。"

历史漏洞与维护现状

虽然CVE-2026-22709已在vm2 3.10.2版本中修复,但这是近年来困扰该库的一系列沙箱逃逸漏洞中的最新案例。此前已披露的漏洞包括:CVE-2022-36067、CVE-2023-29017、CVE-2023-29199、CVE-2023-30547、CVE-2023-32314、CVE-2023-37466和CVE-2023-37903。

2023年7月发现CVE-2023-37903后,Simek曾宣布该项目将停止维护。但最新GitHub仓库中的README文件已删除相关声明,安全页面也在2025年10月更新,表明vm2 3.x版本仍在积极维护中。

安全建议与替代方案

vm2维护者承认未来可能还会发现新的绕过方法,建议用户确保及时更新库版本,并考虑使用isolated-vm等具有更强隔离保证的替代方案。Semgrep表示:"作为vm2的继任者,isolated-vm不再依赖问题多发的vm模型,而是基于V8原生Isolate接口构建,提供了更坚实的基础。但即便如此,vm2维护者仍强调隔离的重要性,实际推荐使用Docker实现组件间的逻辑隔离。"

鉴于该漏洞的严重性,建议用户升级至最新版本(3.10.3),该版本修复了多个沙箱逃逸问题。

历史上的今天
1 月
29
 
枫少@KillBoy
评论  27  访客  27
    • 袖底梅花
      袖底梅花 1

      这库怎么老出这种问题啊,心累

      • 啪啦啪
        啪啦啪 0

        3.10.2修了?赶紧升级先

        • 静夜听
          静夜听 0

          Promise这玩意还能这么绕,学到了

            • 雾岛遥
              雾岛遥 1

              @ 静夜听 Promise这玩意底层太复杂,稍不留神就翻车

            • 星穹游子
              星穹游子 0

              之前用vm2跑用户脚本,现在瑟瑟发抖

              • 狡黠狐小媚
                狡黠狐小媚 0

                隔离靠docker?说得轻巧,资源占用谁扛得住

                • 金鳞岂非池中物
                  金鳞岂非池中物 1

                  不是说要停更了吗,怎么又冒出来

                  • 星光预言者
                    星光预言者 0

                    globalPromise没净化,这设计漏洞太低级了吧

                      • 蜂蜜小狐狸
                        蜂蜜小狐狸 0

                        @ 星光预言者 低级是低级,但V8机制本来就难拦,真不全是码农背锅

                        • 镜中星
                          镜中星 0

                          @ 星光预言者 确实,这设计太马虎了。

                        • 白泽云游
                          白泽云游 0

                          有人试过isolated-vm吗?迁移成本高不高?

                          • 千雪奈
                            千雪奈 0

                            沙箱逃逸都成传统艺能了 😂

                              • 狐仙踪
                                狐仙踪 0

                                @ 千雪奈 哈哈,每次出事都修一下,修一下又出事,循环了

                              • 云游诗人
                                云游诗人 1

                                要是早两个月发现,我们线上就炸了

                                • 幽暗学者
                                  幽暗学者 0

                                  这库修了又出,修了又出,真拿它没办法了

                                  • 梦境织女
                                    梦境织女 1

                                    globalPromise没净化,这也太马虎了,离谱

                                    • VelvetTwilight
                                      VelvetTwilight 0

                                      我们上周刚上线用vm2,现在赶紧回滚

                                      • 青翼蝠王
                                        青翼蝠王 0

                                        isolated-vm听说性能差不少,有兄弟实测过吗?

                                        • 未来观察者
                                          未来观察者 1

                                          Docker隔离听着靠谱,实际调度起来头疼死了

                                            • 蝴蝶公主
                                              蝴蝶公主 1

                                              @ 未来观察者 isolated-vm性能到底咋样?实测比vm2快多少?

                                            • 狂风猎豹
                                              狂风猎豹 1

                                              Promise还能这么玩?学废了,hhh

                                              • 极光潜行
                                                极光潜行 0

                                                之前踩过CVE-2023-37903的坑,折腾一周才搞定

                                                • 星野梦
                                                  星野梦 0

                                                  这漏洞要是被黑了,直接root权限送上门啊

                                                    • 兔绒甜点
                                                      兔绒甜点 0

                                                      @ 星野梦 root直接开了,怕死。

                                                    • 孤星独影
                                                      孤星独影 0

                                                      维护者说还在更新,可谁还敢信啊

                                                      • 琴瑟和鸣
                                                        琴瑟和鸣 0

                                                        求问有没有轻量替代方案,Docker真扛不住

                                                        • 遗忘的旋律
                                                          遗忘的旋律 0

                                                          Docker隔离是好事,但部署脚本真的要花半天。

                                                        匿名

                                                        发表评论

                                                        匿名网友

                                                        拖动滑块以完成验证