vm2, 널리 사용되는 Node.js 샌드박스 라이브러... 노트
GitLab 한국어

vm2, 널리 사용되는 Node.js 샌드박스 라이브러리에서 치명적인 원격 코드 실행 취약점

GitLab의 위협 연구 그룹은 Node.js 라이브러리 vm2에서 CVSS 3.1: 10.0으로 평가된 치명적인 샌드박스 탈출 취약점을 발견했습니다. 이 결함은 원격 코드 실행을 허용하며, vm2 자체 README의 기본 구성에서 비롯됩니다. 이 취약점은 require.external이 활성화된 vm2 버전 3.11.6 이하에서 직접 악용 가능합니다. GitLab은 vm2를 사용하지 않으며, 이 취약점은 비공개로 보고되어 버전 3.11.7에서 신속하게 수정되었습니다. 그러나 이 특정 익스플로잇에 대한 수정은 더 광범위한 구성 위험을 완전히 해결하지는 못합니다. require.external을 사용하는 개발자는 require.root를 제한하고 컨텍스트를 'sandbox'로 설정하여 수동으로 구성을 강화해야 합니다. vm2의 반복적인 샌드박스 탈출 버그 이력을 고려할 때, 진정으로 신뢰할 수 없는 코드에 대해서는 vm2 사용을 피하고 컨테이너 또는 별도의 프로세스를 선택하는 것이 권장됩니다. 이 취약점은 샌드박스 처리된 코드가 vm2 자체를 require하여 호스트의 require() 함수에 액세스할 수 있도록 허용함으로써 작동합니다. 이를 통해 완전한 실행 기능을 갖춘 두 번째, 제한 없는 샌드박스를 생성할 수 있습니다. 버전 3.11.7의 수정은 직접적인 공격을 차단하지만, require.root가 너무 광범위하면 취약점이 남아 있습니다.