🔍 CVE-2026-92954

8.6
CVSS Score
HIGH
2026-09-17
2026-09-21 18:17
✅ 완료

🇰🇷 한글 설명

vm2 샌드박스 라이브러리에서 호스트 영역으로부터 전달된 Promise가 적절히 처리되지 않아 발생하는 보안 취약점입니다. 샌드박스 내 코드가 거부된(rejected) Promise를 반환하는 호스트 함수를 호출하고 이를 무시할 경우, Node.js의 기본 동작에 의해 호스트 프로세스가 강제 종료될 수 있습니다.

💡 쉬운 설명

샌드박스라는 격리된 공간에서 실행되는 코드가 실수나 의도적으로 에러를 일으키면, 전체 프로그램이 갑자기 꺼져버릴 수 있는 문제입니다. 이는 서비스 중단(DoS)을 유발할 수 있습니다.

🇺🇸 원문 (English)

vm2 is a sandbox library for running untrusted JavaScript in Node.js. In versions >= 3.10.0 and <= 3.11.7, Promises returned from the host realm into the sandbox are not marked as handled at the bridge boundary; only Promises created inside the sandbox are wrapped with a rejection-swallowing handler (lib/setup-sandbox.js), and the bridge only installs host-side rejection sanitizers when sandbox code calls .then/.catch/.finally. As a result, code running in the sandbox can invoke a host function that returns a rejected Promise (for example events.once() exposed via the NodeVM events builtin, or any embedder-provided Promise-returning API) and simply ignore the return value, leaving the host Promise unhandled so that Node.js's default unhandled-rejection behavior terminates the host process. This is an incomplete fix of GHSA-hw58-p9xv-2mjh. The issue is fixed in version 3.11.8.

📍 영향받는 시스템

vm2 versions >= 3.10.0 and <= 3.11.7

⚔️ 공격 벡터

샌드박스 내에서 거부된 Promise를 반환하는 호스트 API를 호출한 뒤 해당 반환값을 처리하지 않음으로써 호스트 프로세스를 종료시킴

🛡️ 대응 방법

vm2 버전을 3.11.8 이상으로 업데이트하십시오.

🔧 검증 코드

명령어 결과에 취약한 버전 범위가 출력되면 해당 라이브러리가 설치되어 있는 상태입니다.

Shell / Script
npm list vm2 | grep -E 'vm2@(3\.[10-11]\.[0-7])'

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Node.js