🔍 CVE-2026-92938

9.9
CVSS Score
CRITICAL
2026-09-17
2026-09-19 03:17
✅ 완료

🇰🇷 한글 설명

vm2 3.11.3부터 3.11.6 버전에서 NodeVM 내의 코드 실행 시 host node:sqlite 모듈에 접근할 수 있는 취약점이 발견되었습니다. 공격자는 'node:node:sqlite'와 같은 특수 경로를 사용하여 샌드박스를 우회하고, SQLite의 확장 기능 로딩 기능을 통해 호스트 프로세스에서 임의의 네이티브 코드를 실행할 수 있습니다.

💡 쉬운 설명

안전하게 격리되어 실행되어야 할 프로그램이 실제 컴퓨터의 핵심 권한을 탈취할 수 있는 보안 구멍이 발견되었습니다. 공격자가 특수한 명령어를 보내면 격리된 공간을 뚫고 나와 컴퓨터 전체를 제어할 수 있습니다.

🇺🇸 원문 (English)

vm2 versions 3.11.3 through 3.11.6 expose Node.js's host node:sqlite module to code running in NodeVM when that builtin is permitted, either explicitly or through builtin: ['*']. The module is wrapped with vm.readonly(), which prevents property assignment but leaves host-authority callables reachable; in addition, the resolver treats any request starting with 'node:' as a core-module request and the runtime strips only one 'node:' prefix, so a sandbox request for 'node:node:sqlite' resolves to the configured node:sqlite entry. Sandboxed code can therefore create an in-memory DatabaseSync with extension loading enabled and call DatabaseSync.loadExtension() on a native library bundled in the untrusted plugin package (path derived from __dirname). SQLite loads the library into the Node.js host process and invokes its native entry point, giving the sandboxed plugin arbitrary native code execution outside the sandbox with the host process's privileges. The issue is fixed in vm2 3.11.7.

📍 영향받는 시스템

vm2 versions 3.11.3 through 3.11.6

⚔️ 공격 벡터

샌드박스 내에서 'node:node:sqlite' 경로를 이용해 SQLite 모듈에 접근한 뒤, 외부 라이브러리를 로드하여 임의 코드 실행

🛡️ 대응 방법

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

🔧 검증 코드

출력된 결과에서 vm2의 버전이 3.11.3에서 3.11.6 사이인지 확인하십시오.

Shell / Script
npm list vm2

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Node.js