🇰🇷 한글 설명
vm2의 NodeVM은 3.11.4 버전 이전에서 공개된 네트워크 모듈 제외 시 언더스코어가 붙은 내부 HTTP 모듈(_http_client 등)에 대한 차단이 누락되었습니다. 이로 인해 샌드박스 내부 코드가 공개 네트워크 접근이 차단된 상황에서도 외부 HTTP 요청을 보내거나 소켓을 열 수 있는 보안 취약점이 존재합니다.
💡 쉬운 설명
보안 격리 도구인 vm2의 설정 오류로 인해, 차단된 네트워크 기능 대신 숨겨진 내부 기능을 통해 외부로 데이터를 유출할 수 있습니다. 이는 샌드박스 격리 장치를 우회하여 악의적인 코드가 외부 서버와 통신할 수 있게 만듭니다.
🇺🇸 원문 (English)
vm2 is an open source vm/sandbox for Node.js. Prior to version 3.11.4, NodeVM supports excluding public network builtins from the wildcard builtin option. With this configuration direct access to http, https, http2, net, dgram, tls, dns, and dns/promises is blocked. However, Node.js also exposes underscored internal HTTP builtins such as _http_client and _http_server. These are not blocked when the public modules are excluded. Sandboxed code can use these internal builtins to make outbound HTTP requests and open listening HTTP sockets even though the public network modules are denied. This issue has been patched in version 3.11.4.
📍 영향받는 시스템
vm2 Node.js package versions prior to 3.11.4
⚔️ 공격 벡터
Sandboxed code exploiting internal underscored HTTP builtins to bypass network restrictions
🛡️ 대응 방법
Upgrade vm2 to version 3.11.4 or later to patch the internal builtin bypass vulnerability
🔧 검증 코드
출력된 버전이 3.11.4 미만인 경우 취약한 것으로 판단하며, 3.11.4 이상이면 패치된 상태입니다.
npm list vm2 2>/dev/null | grep -E 'vm2@'