0.40.4까지의 nvm(노드 버전 관리자)은 구성된 Node.js/io.js 미러에서 제공하는 버전 문자열에서 임의의 명령을 실행합니다. 'nvm install'과 같은 명령은 미러의 index.tab에서 사용 가능한 버전을 읽고 삭제 없이 선택한 버전을 사용하여 다운로드 URL 및 shell/awk 명령을 빌드합니다. 두 개의 싱크가 동일한 신뢰할 수 없는 입력의 영향을 받습니다. nvm_download()는 컬/wget 명령 문자열을 작성하고 `eval`을 사용하여 실행하므로 명령 대체가 포함된 버전 필드
0.40.4까지의 nvm(노드 버전 관리자)은 구성된 Node.js/io.js 미러에서 제공하는 버전 문자열에서 임의의 명령을 실행합니다. 'nvm install'과 같은 명령은 미러의 index.tab에서 사용 가능한 버전을 읽고 삭제 없이 선택한 버전을 사용하여 다운로드 URL 및 shell/awk 명령을 빌드합니다. 두 개의 싱크가 동일한 신뢰할 수 없는 입력의 영향을 받습니다. nvm_download()는 컬/wget 명령 문자열을 구축하고 eval을 사용하여 실행했습니다. 따라서 명령 대체(예: $(id))가 포함된 버전 필드가 로컬 셸에 의해 실행되었습니다. nvm_get_checksum()은 버전에서 파생된 다운로드 슬러그를 awk 프로그램에 삽입하여 제작된 버전이 awk의 system()을 통해 임의의 명령을 실행할 수 있도록 했습니다. 구성된 미러를 제어하거나, 기본이 아닌 미러의 CI 또는 사용자에게 미러 콘텐츠를 제공하거나, TLS가 아닌 미러의 중간에 있는 공격자는 nvm을 실행하는 사용자의 권한으로 임의 명령을 실행할 수 있습니다. 기본 미러(TLS를 통한 https://nodejs.org)는 영향을 받지 않습니다. eval을 사용하는 대신 모든 인수를 리터럴 argv 요소로 전달하고, 값을 프로그램에 보간하는 대신 -v를 통해 데이터로 awk에 전달하고, 사용하기 전에 Node.js/io.js 버전 문법 외부의 모든 버전을 거부하여 마스터(다음 태그가 지정된 릴리스 보류 중)에서 수정되었습니다.
왜 이 VPI인가 (설명가능 · 실험적)
VPI 산정 기준
| 영향도 | 75.00 |
| 악용 신호(PoC 존재) | ×1.20 |
| VPI | 90.00 |
VPI 공식 vpi-v1 기준
| 소스 | CVSS 버전 | 기본 점수 | 심각도 | 벡터 문자열 | 평가일 |
|---|---|---|---|---|---|
| NVDNIST | 4.0 | 7.5 | HIGH | CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/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 | 2026. 06. 05. |
| NVDNIST | 3.1 |
| 7.5 |
HIGH |
| CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H |
| 2026. 06. 05. |