🇰🇷 한글 설명
Node.js용 오픈소스 샌드박스인 vm2 3.11.6 미만 버전에서 발생하는 취약점입니다. handleException() 함수가 Error.cause 속성을 적절히 정제하지 않아, 샌드박스 내 코드가 호스트의 process 객체와 같은 강력한 객체에 접근하여 임의의 명령을 실행할 수 있습니다.
💡 쉬운 설명
격리된 환경(샌드박스)에서 실행되는 코드가 보안 벽을 뚫고 컴퓨터 전체를 제어할 수 있는 권한을 얻을 수 있는 위험한 결함입니다. 에러 메시지에 숨겨진 정보를 통해 금지된 시스템 명령을 실행할 수 있게 됩니다.
🇺🇸 원문 (English)
vm2 is an open source vm/sandbox for Node.js. Prior to 3.11.6, handleException() in lib/setup-sandbox.js sanitizes SuppressedError.error, SuppressedError.suppressed, and AggregateError.errors but does not sanitize Error.cause, allowing sandbox code to obtain a powerful host object such as process from an embedder-exposed host function that throws an error with that object as its cause and then execute arbitrary host commands. This issue is fixed in version 3.11.6.
📍 영향받는 시스템
vm2 versions prior to 3.11.6
⚔️ 공격 벡터
샌드박스 내에서 에러를 유발하는 호스트 함수를 호출하여 Error.cause에 포함된 호스트 객체를 탈취하는 방식
🛡️ 대응 방법
vm2 버전을 3.11.6 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 vm2의 버전이 3.11.6 미만이면 취약한 상태입니다.