
CVE-2026-92935에 대한 오프라인 vm2 증거 검사기. 샌드박스 패키지 및 중첩 증거. 독립 실행형 Python; JSON/CSV/HTML 보고서; 익스플로잇 페이로드 없음.
CVE-2026-92935: vm2 배열 형태 require 중첩 탈출(별칭 GHSA-8hr7-r645-pc6w)을 위한 오프라인 증거 검사기입니다.
명시적으로 제공된 vm2 패키지 버전을 검토된 권고 범위와 비교하고, 해당 버전 증거가 무엇을 보여주고 무엇을 보여주지 않는지 보고합니다. Python 3.10+ 및 표준 라이브러리만 사용하며, 단일 실행 파일 vm2_nesting_check.py는 단독으로 복사할 수 있습니다. 웹사이트에 접속하거나, 애플리케이션 코드를 가져오거나, 패키지 관리자를 실행하거나, 익스플로잇 페이로드를 실행하지 않습니다.
potentially_affected는 익스플로잇이 아닙니다. 보고된 버전이 문서화된 영향 범위 구간에 속함을 의미합니다. 애플리케이션 전제 조건과 익스플로잇 가능성은 확립되지 않았으며, 모든 행은 exploitability: not_tested를 유지합니다.fixed_version_reported는 패치 증명이 아닙니다. 버전 주장만을 설명하며, 설치된 패치나 안전성을 증명하지 않습니다.unknown은 안전하지도 실패도 아닙니다. 누락, 충돌, 형식 오류, 사전 릴리스, 한정, 사용자 정의/벤더 빌드는 unknown으로 유지되며, 검토된 범위를 벗어난 모든 항목도 마찬가지입니다.74aa57ba5df05c34d17ae67912cd26ec2335201b에서 번들로 제공되며, 패키지별 범위 비교와 혼합 공백 CSV 수정이 포함됩니다. 동반 저장소는 필요하지 않습니다.# Assess one reported version and print JSON
python vm2_nesting_check.py --version 3.11.7 --format json
# Assess the example inventory and save an HTML report
python vm2_nesting_check.py --inventory examples/inventory.example.json --format html --output report.html
# Assess a CSV inventory (CSV is the default format) and exit 1 on potentially_affected results
python vm2_nesting_check.py --csv-list inventory.csv --fail-on-finding
# Show every option, then run the local test suite
python vm2_nesting_check.py --help
python -m unittest -v
--version, --inventory, --csv-list 또는 --source 중 최소 하나가 필요합니다. --tool-version은 검사기 버전을 출력합니다(현재 1.1.0).
합성 예시 보고서 열기. 예시 데이터일 뿐이며, 실제 평가가 아닙니다.
주요 권고 및 검토된 데이터베이스는 2026-10-24에 조회되었습니다(rules_as_of).
문서화된 영향 구간은 3.11.4부터 3.11.6까지입니다. 검토된 수정 릴리스는 3.11.7이며, 검토된 수정 라인은 3.11.x입니다.
| 예시 보고 버전 | 결과 |
|---|---|
| 3.11.3 | unknown |
| 3.11.4 | potentially_affected |
| 3.11.6 | potentially_affected |
| 3.11.7 | fixed_version_reported |
| 3.11.8 | fixed_version_reported |
| 3.12.0 | unknown |
| 4.0.0 | unknown |
경계에 대한 참고 사항:
v가 허용됩니다(v3.11.7). 누락, 충돌, 형식 오류, 프리릴리스, 한정(qualified), 커스텀/벤더 빌드는 unknown으로 유지됩니다.unknown(기본값), upstream, official 또는 official_upstream인 --build-source(또는 build_source 필드)는 upstream으로 비교됩니다. 벤더 이름과 같은 다른 값은 독립적인 패치 증거가 필요하므로 unknown을 산출합니다.각 입력 값은 별도의 패키지 인스턴스이며, 검사기는 단일 인스턴스에 대해 항목 간 증거를 조정하지 않습니다. 입력은 한 번의 실행에서 결합할 수 있습니다.
| 옵션 | 입력 |
|---|---|
--version VERSION (별칭 --package-version) | 보고된 vm2 버전; 반복 가능. |
--inventory FILE | JSON 객체 또는 객체 배열; 반복 가능. |
--csv-list FILE | 헤더 행이 있는 CSV; 반복 가능. |
--source FILE | 어휘 검토를 위한 명시적 JS/TS 파일(소스 검토 후보 참조); 반복 가능. |
--source-root DIR | --source와 함께 필수; 증거 경로는 이를 기준으로 상대적입니다. |
--build-source SOURCE | --version 빌드의 출처, 최대 512자. CLI 버전에 적용됩니다. |
--nodevm-nesting-enabled, --require-configuration-is-array-shaped, --attacker-supplied-javascript-executed (true 또는 false) | CLI 버전에 적용되는 운영자 관찰. |
JSON 인벤토리. 하나의 객체 또는 객체 배열. 필수: 정수 schema_version: 1 및 문자열 package_version. 선택 사항: package: "vm2", label, build_source, 그리고 아래의 관찰 키. 알 수 없거나 중복된 키, 잘못된 타입, 비유한 숫자 및 형식 오류 입력은 거부됩니다. examples/inventory.example.json을 참조하세요.
{
"schema_version": 1,
"package": "vm2",
"package_version": "3.11.7",
"label": "example-package-instance",
"build_source": "unknown",
"nodevm_nesting_enabled": null,
"require_configuration_is_array_shaped": null,
"attacker_supplied_javascript_executed": null
}
CSV 목록. 헤더에는 package_version이 포함되어야 합니다. 선택적 열은 label, build_source 및 관찰 키이며, 관찰 셀은 true, false 또는 비워 둘 수 있습니다. 그 외의 열은 거부됩니다.
label,package_version,build_source
example-package-instance,3.11.7,unknown
이러한 선택적 관찰은 권고문의 전제 조건에 대응합니다. 알고 있는 경우에만 제공하십시오. 명령줄에서는 밑줄을 하이픈으로 바꾸십시오(예: --nodevm-nesting-enabled true).
| 관찰 키 | 의미 |
|---|---|
nodevm_nesting_enabled | NodeVM 중첩 활성화됨 |
require_configuration_is_array_shaped | require 구성이 배열 형태임 |
attacker_supplied_javascript_executed | 공격자가 제공한 JavaScript 실행됨 |
각 관찰은 불리언 또는 null(보고되지 않음)이며, 검증되지 않은 상태이고, 패키지 버전 결과를 절대 변경하지 않습니다. 관찰이 없더라도 완화 조치가 입증되지는 않습니다. 오염 분석, 도달 가능성 테스트 또는 런타임 평가는 수행되지 않습니다.
선택적 소스 검사는 NodeVM 구성에 대해 별도의 어휘적 후보를 생성합니다. 이는 검토 보조 수단이며, 구성, 도달 가능성 또는 공격자 제어에 대한 증거가 아닙니다.
python vm2_nesting_check.py --source examples/source.example.js --source-root examples --format json
python vm2_nesting_check.py --version 3.11.6 --source examples/source.example.js --source-root examples --format html
기능
--source로 파일을 명시적으로 선택합니다. --source-root는 필수이며, 선택된 모든 경로는 그 안에서 확인되어야 합니다. 어떤 것도 탐색되거나 실행되지 않습니다. 허용되는 확장자는 .js, .cjs, .mjs, .ts, .cts, .mts, .jsx, .tsx입니다..NodeVM 생성을 포함한 단순 리터럴 vm2 CommonJS/ES import를 인식합니다.new 후보에 대해 상대 경로와 줄 번호, 리터럴 nesting 값, 배열/객체 또는 리터럴 require 형태, 그리고 직접 할당된 변수에 대한 .run()의 어휘적 연관성을 기록합니다.unknown, 악용 가능성 not_tested, 채워지지 않은 운영자 전제 조건을 가집니다. 별도로 제공된 버전의 평가를 상속하지 않으며, 그 자체로 --fail-on-finding 게이트를 트리거하지 않습니다.수행하지 않는 것