🇰🇷 한글 설명
Node.js의 URL 처리 과정에서 발생하는 결함으로, 잘못된 문자가 포함된 국제화 도메인 이름(IDN)을 사용하여 url.format() 함수를 호출할 경우 네이티브 코드에서 어설션 실패(assertion failure)가 발생합니다. 이로 인해 Node.js 프로세스가 예기치 않게 종료되어 서비스 거부(DoS) 상태가 될 수 있습니다.
💡 쉬운 설명
Node.js에서 특수한 문자가 섞인 웹 주소를 처리할 때 프로그램이 오류를 일으켜 갑자기 꺼지는 문제입니다. 공격자가 조작된 주소를 보내면 서버를 멈추게 만들 수 있습니다.
🇺🇸 원문 (English)
A flaw in Node.js URL processing causes an assertion failure in native code when `url.format()` is called with a malformed internationalized domain name (IDN) containing invalid characters, crashing the Node.js process.
📍 영향받는 시스템
Node.js (URL 처리 모듈을 사용하는 모든 버전)
⚔️ 공격 벡터
잘못된 형식의 국제화 도메인 이름(IDN)이 포함된 URL을 url.format() 함수에 입력값으로 전달
🛡️ 대응 방법
Node.js를 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
명령어 실행 시 프로세스가 즉시 종료(Crash)되거나 어설션 오류 메시지가 출력되면 취약한 상태입니다.
node -e 'try { require("url").format({ hostname: "😀.com" }); } catch (e) { console.log("Vulnerable or Error: " + e.message); }' 2>&1