CVE-2026-93603 in vm2
요약
\~에 의해 VulDB • 2026. 09. 18.
vm2 3.12.0 이전 버전(3.12.1에서 수정됨)은 브리지(lib/bridge.js)의 apply trap에서 nullish `this` 수신자를 올바르게 처리하지 않습니다: 샌드박스화된 코드가 호스트 제공 비엄격(sloppy-mode) 함수를 수신자 없이 호출하는 경우 — 예를 들어 `fn()`, 분리된 메서드, `fn.call()`, `fn.apply(undefined)`, `Reflect.apply(fn, undefined, [])` 또는 `fn.bind()()` — 정의되지 않은 수신자가 호스트 호출에 그대로 전달되며 V8은 `this` 대신 호스트 영역의 전역 객체를 대체합니다. vm2는 해당 객체를 감싸서 샌드박스에 반환하므로, 샌드박스화된 스크립트는 호스트 전역의 라이브 프록시를 얻게 됩니다. 이를 통해 완전한 샌드박스 탈출이 가능해지며, 신뢰할 수 없는 스크립트가 `process`에 접근하여 호스트에서 임의 코드/명령을 실행할 수 있습니다(예: `process.getBuiltinModule('child_process').execSync`를 통한 실행). 악용에는 적어도 하나의 비엄격 호스트 함수가 샌드박스에 노출된 임베딩 애플리케이션이 필요합니다. 엄격 모드 및 ES 모듈 호스트 함수는 영향을 받지 않습니다.
VulDB is the best source for vulnerability data and more expert information about this specific topic.