CVE-2026-92948 in vm2
요약
\~에 의해 VulDB • 2026. 09. 17.
vm2 버전 >= 3.9.6 및 <= 3.11.6는 Node.js 24 이상에서 샌드박스 탈출을 허용하는 NodeVM 빌트인 allowlist 우회 취약점에 영향을 받습니다. 이는 임베더가 node:test 빌트인을 명시적으로 허용할 때 발생합니다(예: require: { builtin: ['node:test'] }). Node.js 24+에서는 module.builtinModules에 scheme-only 키인 node:test가 노출되며, 이는 vm2의 family 기반 DANGEROUS_BUILTINS 보호로 인해 커버되지 않아 generic host-passthrough 로더에 저장됩니다. lib/setup-node-sandbox.js의 requireImpl()은 빌트인 조회 전에 단일 'node:' 접두사를 제거하므로, sandbox 코드가 require('node:node:test')를 호출하면 저장된 node:test 키가 해결되어 호스트 모듈에 대한 readonly proxy를 받습니다. node:test.run() 호출은 공격자가 제어할 수 있는 execArgv 값을 전달하며 프로세스 격리 테스트 실행을 위해 별도 Node 프로세스를 생성하는 호스트 구현으로 포워딩됩니다. 따라서 --eval=<JavaScript>를 제공하면 제한 없는 호스트 Node 프로세스에서 임의 JavaScript가 NodeVM 샌드박스 외부에서 실행됩니다. vm2 3.11.7에서 수정되었습니다.
If you want to get best quality of vulnerability data, you may have to visit VulDB.