🇰🇷 한글 설명
Node.js용 샌드박스 라이브러리 vm2의 3.11.4 이전 버전에서 위험한 크로스 리얼姆 심볼 감지가 불완전하여 공격자가 호스트 환경의 심볼을 탈취하고 조작할 수 있습니다. 이를 통해 util.promisify와 같은 핵심 기능을 하이재킹하여 호스트의 동작을 제어할 수 있는 심각한 취약점입니다.
💡 쉬운 설명
보안 격리 장치인 vm2의 결함으로 인해 공격자가 격리된 공간에서 벗어나 호스트 시스템의 기능을 조작할 수 있습니다. 이는 시스템의 정상적인 동작을 해치거나 악의적인 코드를 실행할 수 있는 위험한 상태입니다.
🇺🇸 원문 (English)
vm2 is an open source vm/sandbox for Node.js. Prior to version 3.11.4, Symbol.for override in setup-sandbox.js only intercepts 2 of 9 dangerous Node.js cross-realm symbols. Combined with the bridge's set/defineProperty/deleteProperty traps having no isDangerousCrossRealmSymbol key check, sandbox code can obtain real cross-realm symbols, write them to host objects, and control host-side behavior — verified with a full util.promisify hijack chain. This issue has been patched in version 3.11.4.
⚔️ 공격 벡터
위험한 심볼 감지 우회를 통해 샌드박스 내부에서 호스트의 심볼을 탈취하고 호스트 객체에 작성하여 기능 하이재킹
🛡️ 대응 방법
vm2 라이브러리를 버전 3.11.4 이상으로 즉시 업그레이드하십시오.
🔧 검증 코드
출력된 버전 번호가 3.11.4보다 낮으면 취약한 버전이므로 패치해야 합니다.
npm list vm2 2>/dev/null | grep -E 'vm2@'