[CVE] CVE-2026-47140
CVE-2026-47140에서 CWE-693 관련 CRITICAL 등급의 취약점이 공개되었으며, 보안 영향 가능성이 있어 영향 범위와 패치 여부를 확인해야 합니다.
주의: 이 글은 AI 자동 작성되었습니다. 반드시 재검증해야 합니다. 내용의 오류가 있을 경우 댓글 작성 부탁드립니다.
핵심 요약
CVE-2026-47140은 Node.js용 샌드박스인 vm2에서 발생한 권한 우회 취약점입니다. 설명에 따르면, NodeVM은 원래 module, workerthreads, cluster, vm, repl, inspector 같은 위험한 내장 기능을 차단하려고 했지만, process와 inspector/promises가 누락되어 있었습니다. 이 둘은 샌드박스 내부 코드가 호스트 측 실행 프리미티브에 도달하는 데 악용될 수 있으며, 그 결과 샌드박스 격리가 무너져 호스트 프로세스에서 코드 실행이 가능해집니다.
공개된 평가는 CVSS 3.1 기준 10.0점, CRITICAL로 제시되어 있으며, 네트워크를 통한 공격 가능성, 낮은 공격 복잡도, 인증 불필요, 사용자 상호작용 불필요, 그리고 영향 범위 확장과 함께 기밀성·무결성·가용성에 모두 높은 영향을 주는 것으로 분류됩니다. 패치는 version 3.11.4에서 제공되었습니다.
기술 배경
vm2는 Node.js 환경에서 외부 코드를 제한된 실행 공간에서 돌리기 위한 vm/sandbox 구현입니다. 이런 계열의 제품은 “샌드박스 내부에서 무엇을 못 하게 할 것인가”가 핵심인데, 특히 Node.js의 내장 객체와 모듈 중 일부는 프로세스 제어나 동적 실행, 디버깅, 다른 스레드/클러스터 접근 같은 강한 권한을 제공할 수 있어 차단 대상이 됩니다.
이번 취약점의 본질은 denylist 기반 차단의 누락입니다. NodeVM이 여러 위험한 builtins를 막고 있었지만 process와 inspector/promises가 빠져 있었고, 이 누락이 샌드박스 경계를 넘어 호스트 프로세스에 닿는 경로를 열었습니다. 즉, “원래 막혀 있어야 할 것”이 하나 빠진 수준이 아니라, 샌드박스의 신뢰 경계 자체가 무너질 수 있는 형태입니다.
CWE는 CWE-693, 즉 보호 메커니즘 실패로 분류됩니다. 이런 유형은 구현 세부에서 특정 API 하나를 빠뜨리는 순간, 설계 의도와 실제 실행 결과가 완전히 달라질 수 있다는 점이 문제입니다.
공격자 관점에서 볼 부분
공격자 입장에서 이 취약점의 매력은 매우 분명합니다. 샌드박스는 원칙적으로 “코드를 넣어도 격리되어 실행된다”는 기대를 주지만, 여기서는 제한하려던 경로가 완전히 닫히지 않았습니다. 따라서 공격자는 샌드박스 내부 권한만 갖고도 호스트 프로세스 수준의 실행 원시 요소에 접근할 가능성을 노릴 수 있습니다.
특히 주목할 점은 이 문제가 단순한 정보 노출이 아니라 호스트 프로세스에서의 코드 실행으로 이어질 수 있다는 설명입니다. 이는 일반적인 샌드박스 우회보다 훨씬 위험하며, 멀티테넌트 환경이나 사용자 제출 코드를 실행하는 서비스에서는 곧바로 경계 붕괴로 이어질 수 있습니다.
또한 CVSS 벡터가 AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H인 점은, 외부에서 비교적 낮은 난이도로 시도할 수 있고, 성공 시 영향이 다른 보안 경계까지 확장될 수 있음을 시사합니다. 다만 실제 악용 난이도나 공격 전개 방식은 공개 자료만으로는 확인 필요입니다.
영향 범위
원문 기준으로 영향받는 제품은 vm2이며, 설명에 따르면 version 3.11.4 이전이 취약합니다. 다만 세부적으로 어떤 배포판, 어떤 통합 방식, 어떤 사용 패턴이 실제로 영향을 받는지는 제공된 자료만으로는 확인 필요입니다.
위험이 큰 환경은 다음과 같은 경우입니다.
외부 입력을 받아 Node.js 코드를 샌드박스에서 실행하는 서비스 사용자 정의 스크립트나 플러그인을 vm2로 격리해 실행하는 제품 서버 내부에서 비신뢰 코드를 평가하는 플랫폼
이런 환경에서는 샌드박스 실패가 단순 앱 오류가 아니라 호스트 프로세스 손상으로 직결될 수 있습니다.
대응 및 패치
설명에 따르면 이 이슈는 version 3.11.4에서 패치되었습니다. 따라서 가장 직접적인 대응은 vm2를 3.11.4 이상으로 올리는 것입니다.
업그레이드가 즉시 어렵다면, 최소한 취약한 vm2 사용을 중단하거나 신뢰할 수 없는 코드 실행 자체를 멈추는 방향으로 운영을 조정해야 합니다. 샌드박스 우회는 우회 자체가 곧 정책 실패이므로, 단순한 기능 제한만으로는 충분하지 않을 수 있습니다.
또한 샌드박스 기반 실행 환경을 운영 중이라면, 해당 구성에서 process나 디버깅 관련 기능이 의도치 않게 노출되지 않는지 구조적으로 점검할 필요가 있습니다. 다만 구체적 완화 설정이나 우회 차단 방법은 제공된 자료에 없으므로 확인 필요입니다.
메모
CVE: CVE-2026-47140 제품: vm2 취약 버전: 3.11.4 이전 수정 버전: 3.11.4 취약성 분류: CWE-693 심각도: CVSS 3.1 10.0, CRITICAL 공개 익스플로잇 신호: 확인 필요 상태: Deferred
이 취약점은 “차단 목록에 무엇을 넣었는가”보다 “무엇을 빠뜨렸는가”가 더 중요한 사례입니다. 샌드박스 보안은 경계 내부에서 발생하는 우연한 접근도 크게 보게 되므로, 작은 누락이 곧 전체 격리 실패로 이어질 수 있습니다.
댓글