🇰🇷 한글 설명
Node.js의 실험적 기능인 정책(Policy) 메커니즘에서 __proto__를 사용하여 정책을 우회할 수 있는 취약점입니다. 이를 통해 policy.json에 정의되지 않은 외부 모듈을 강제로 로드할 수 있습니다. 이 취약점은 Node.js v16, v18, v20의 모든 활성 릴리스 라인에 영향을 미칩니다.
💡 쉬운 설명
Node.js에서 허용된 프로그램만 실행하도록 막아두는 보안 규칙을 몰래 뚫고 들어올 수 있는 결함입니다. 공격자가 규칙에 없는 위험한 파일을 몰래 불러와 실행할 수 있습니다.
🇺🇸 원문 (English)
The use of __proto__ in process.mainModule.__proto__.require() can bypass the policy mechanism and require modules outside of the policy.json definition. This vulnerability affects all users using the experimental policy mechanism in all active release lines: v16, v18 and, v20.
Please note that at the time this CVE was issued, the policy is an experimental feature of Node.js
📍 영향받는 시스템
Node.js v16, v18, v20 (실험적 Policy 기능을 사용하는 경우)
⚔️ 공격 벡터
process.mainModule.__proto__.require()를 이용한 정책 우회 및 미승인 모듈 로드
🛡️ 대응 방법
Node.js를 최신 보안 패치가 적용된 버전으로 업데이트하거나, 실험적 Policy 기능 사용 시 주의가 필요합니다.
🔧 검증 코드
출력된 버전이 v16, v18, v20 범위에 해당하며 Policy 기능을 사용 중인지 확인합니다.
node -e 'console.log(process.version)'