CVE-2026-100721
vm2 3.12.2 이전 버전에서 사용자 정의 리졸버를 통한 인가 우회
- 게시됨
- 2026. 9. 27.
- 업데이트됨
- 2026. 9. 27.
- CNA 할당 중
- VulnCheck
- 증거 관찰됨
- 2026. 10. 3.
기본 CVSS
nvd · CVSS 4.0
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X요약
vm2 3.12.2 이전 버전에는 NodeVM 외부 모듈 리졸버의 권한 부여 우회 취약점이 있습니다. 임베더가 `require.external`을 사용자 정의 리졸버로 구성하고 (`context: 'host'`인 경우), lib/resolver-compat.js의 `LegacyResolver.customResolve`는 해석된 모듈 디렉터리를 `this.externals`에 `new RegExp('^' + escapeRegExp(resolvedPath))`로 기록하며, 경로 구분자나 문자열 끝 경계를 요구하지 않습니다. 따라서 신뢰할 수 없는 게스트 코드는 허용 목록에 있는 모듈(예: `foo`)을 require한 다음, 해석된 접두사를 공유하는 비허용 형제 모듈의 절대 경로(예: `.../node_modules/foo2/index.js`)를 require할 수 있습니다. 이 형제 모듈은 `isPathAllowedForModule`을 통과하고 `hostRequire`를 통해 로드되므로, 해당 최상위 코드가 호스트 프로세스에서 실행되며, 이는 exports가 `vm.readonly`로 래핑되기 전에 발생하여 샌드박스 탈출 및 호스트 컨텍스트에서의 임의 코드 실행을 초래합니다.
소스
CVE-2026-100721에 대한 Python PoC: vm2 <3.12.2 NodeVM 외부 허용 목록 우회를 탐지하고 익스플로잇하여 로컬 랩 또는 대량 HTTP 대상를 통해 샌드박스 탈출 및 호스트 RCE를 달성합니다.
책임 있는 사용
귀하가 소유하고 있거나 테스트할 권한이 있는 시스템에 대해서만 취약점 정보를 사용하십시오. Kitploit은 공개 연구 메타데이터에 연결되며 익스플로잇 코드나 악성 페이로드를 저장하지 않습니다.