🇰🇷 한글 설명
Node.js의 URL 파서에서 javascript 프로토콜을 사용할 때 호스트네임 스푸핑이 발생할 수 있는 취약점입니다. 'javAscript:'와 같이 대소문자를 혼용한 프로토콜을 사용하면 url.parse() 함수가 호스트네임을 잘못 인식하여 보안 결정을 우회할 수 있습니다.
💡 쉬운 설명
웹 주소를 분석하는 기능이 대소문자를 제대로 구분하지 못해 발생하는 문제입니다. 공격자가 주소 형식을 살짝 바꾸면 시스템이 가짜 주소를 진짜로 착각하게 만들 수 있습니다.
🇺🇸 원문 (English)
Node.js: All versions prior to Node.js 6.15.0, 8.14.0, 10.14.0 and 11.3.0: Hostname spoofing in URL parser for javascript protocol: If a Node.js application is using url.parse() to determine the URL hostname, that hostname can be spoofed by using a mixed case "javascript:" (e.g. "javAscript:") protocol (other protocols are not affected). If security decisions are made about the URL based on the hostname, they may be incorrect.
📍 영향받는 시스템
Node.js 6.15.0, 8.14.0, 10.14.0, 11.3.0 미만 모든 버전
⚔️ 공격 벡터
javascript 프로토콜의 대소문자를 혼합하여(예: javAscript:) URL 호스트네임을 조작하는 방식
🛡️ 대응 방법
Node.js를 보안 패치가 적용된 최신 버전(6.15.0, 8.14.0, 10.14.0, 11.3.0 이상)으로 업데이트하십시오.
🔧 검증 코드
출력된 버전이 취약한 버전 범위(6.15.0, 8.14.0, 10.14.0, 11.3.0 미만)에 해당하면 취약한 상태입니다.
node -v | grep -E 'v(0\.|1[0-1]\.(?!(14|3\.)))'