🇰🇷 한글 설명
vm2 3.10.2부터 3.11.6 버전에서 Node.js 26 환경을 사용할 때 샌드박스를 탈출할 수 있는 취약점이 발견되었습니다. V8 14.6의 PromiseThenLookupChain 보호 기능 결함을 악용하여 공격자가 호스트의 Function 생성자에 접근하고 임의의 코드를 실행할 수 있습니다.
💡 쉬운 설명
안전하게 격리되어 있어야 할 프로그램 실행 환경(샌드박스)을 뚫고 컴퓨터 본체에 침입할 수 있는 보안 구멍이 발견되었습니다. 공격자가 특수한 코드를 보내면 격리된 공간을 벗어나 사용자의 컴퓨터를 마음대로 조종할 수 있습니다.
🇺🇸 원문 (English)
vm2 versions 3.10.2 through 3.11.6 contain a sandbox escape vulnerability on Node.js 26 where Promise.prototype.finally() bypasses vm2's wrapper protections due to a stale PromiseThenLookupChain protector in V8 14.6. Attackers can exploit this by creating an async function that returns a Promise with an attacker-controlled constructor Symbol.species, allowing them to reach the host Function constructor and process object for arbitrary code execution.
📍 영향받는 시스템
vm2 versions 3.10.2 through 3.11.6 (running on Node.js 26 and V8 14.6)
⚔️ 공격 벡터
비동기 함수 내에서 Symbol.species를 조작하여 호스트의 Function 생성자 및 process 객체에 접근하는 방식
🛡️ 대응 방법
vm2를 최신 보안 패치가 적용된 버전으로 업데이트하거나, 해당 취약점이 해결된 Node.js/V8 환경으로 전환하십시오.
🔧 검증 코드
명령어 결과에 취약한 버전 범위의 vm2가 출력되면 해당 시스템은 보안 위험이 있는 상태입니다.
npm list vm2 | grep -E 'vm2@3\.(10\.[2-9]|11\.[0-6])'