🇰🇷 한글 설명
Node.js용 샌드박스 라이브러리인 vm2의 3.11.4 이전 버전에서는 diagnostics_channel, async_hooks, perf_hooks와 같은 프로세스 전역 관측 모듈이 차단되지 않아 보안 취약점이 존재합니다. 샌드박스 내부의 악성 코드가 이러한 모듈을 통해 호스트 애플리케이션의 데이터에 접근할 수 있습니다.
💡 쉬운 설명
vm2 라이브러리의 이전 버전에서는 격리된 샌드박스 환경에서도 호스트 시스템의 중요한 정보를 엿볼 수 있는 구멍이 있었습니다. 이 문제를 해결하기 위해 해당 모듈에 대한 접근이 차단되었습니다.
🇺🇸 원문 (English)
vm2 is an open source vm/sandbox for Node.js. Prior to version 3.11.4, NodeVM exposes some process-wide observability builtins when they are allowed through require.builtin. The diagnostics_channel, async_hooks, and perf_hooks builtins are not blocked by the dangerous builtin denylist. These modules are process-wide, not sandbox-local. Sandboxed code can use them to observe host application data across the vm2 boundary. This issue has been patched in version 3.11.4.
📍 영향받는 시스템
vm2 version < 3.11.4
⚔️ 공격 벡터
샌드박스 내부의 악성 코드가 require.builtin을 통해 차단되지 않은 프로세스 전역 모듈을 호출하여 호스트 데이터 탈취
🛡️ 대응 방법
vm2 라이브러리를 3.11.4 이상 버전으로 업그레이드하여 패치 적용
🔧 검증 코드
출력된 버전 번호가 3.11.4 미만인 경우 취약한 버전으로 확인되므로 업그레이드가 필요합니다.
npm list vm2 2>/dev/null | grep vm2