🔍 CVE-2026-22709

9.8
CVSS Score
CRITICAL
2026-01-26
2026-06-17 10:20
✅ 완료

🇰🇷 한글 설명

Node.js용 오픈 소스 샌드박스인 vm2에서 Promise.prototype.then 및 Promise.prototype.catch 콜백 함수의 제약을 우회할 수 있는 취약점이 발견되었습니다. 이 취약점으로 인해 공격자는 샌드박스를 탈출하여 임의의 코드를 실행할 수 있습니다.

💡 쉬운 설명

vm2의 취약점으로 인해 샌드박스를 탈출하여 악성 코드를 실행할 수 있습니다. Node.js를 사용하는 시스템에서 vm2 버전 3.10.2 이전의 버전을 사용하는 경우 영향을 받을 수 있습니다. 이 취약점은 CRITICAL 등급으로 평가되며, 즉시 패치가 필요합니다.

🇺🇸 원문 (English)

vm2 is an open source vm/sandbox for Node.js. In vm2 prior to version 3.10.2, `Promise.prototype.then` `Promise.prototype.catch` callback sanitization can be bypassed. This allows attackers to escape the sandbox and run arbitrary code. In lib/setup-sandbox.js, the callback function of `localPromise.prototype.then` is sanitized, but `globalPromise.prototype.then` is not sanitized. The return value of async functions is `globalPromise` object. Version 3.10.2 fixes the issue.

📍 영향받는 시스템

Node.js에서 vm2 버전 3.10.2 이전의 버전을 사용하는 시스템

⚔️ 공격 벡터

Promise.prototype.then 및 Promise.prototype.catch 콜백 함수의 제약 우회

🛡️ 대응 방법

vm2 버전 3.10.2 이상으로 업그레이드

🔧 검증 코드

로컬 Python 환경에서 실행 가능합니다. Python과 pip가 설치되어 있어야 합니다. vm2 패키지의 버전을 확인하여 취약점 여부를 판단합니다.

Shell / Script
python -c "import pkg_resources; print('vm2' in [p.project_name for p in pkg_resources.working_set] and pkg_resources.get_distribution('vm2').version < '3.10.2')" && echo {"result": "취약", "reason": "vm2 버전이 3.10.2 미만"} || echo {"result": "양호", "reason": "vm2 버전이 3.10.2 이상"}

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

💻 영향받는 소프트웨어

Node.js